1037
package Main;
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 선언
int testcase = in.nextInt();
int n [] = new int [testcase];
// 배열에 약수를 입력
for(int i = 0 ;i < testcase; i++) {
n[i] = in.nextInt();
}
// 기본값 설정
int max = n[0];
int min = n[0];
// 최대 최소값 탐색
for(int i = 0 ;i < testcase; i++) {
if (n[i] >= max) {
max = n[i];
}
if (n[i] <= min) {
min = n[i];
}
}
// 출력
System.out.println(max * min);
}
}
문제
양수 A가 N의 진짜 약수가 되려면, N이 A의 배수이고, A가 1과 N이 아니어야 한다. 어떤 수 N의 진짜 약수가 모두 주어질 때, N을 구하는 프로그램을 작성하시오.
배열의 최소값과 최대값을 탐색하여 곲한 값을 출력한다.
약수의 특성을 알고 있어야 한다. 문제에서 약수는 1과 자기자신을 제외한 모든 값을 입력한다.
즉 입력값의 최대값과 최소값의 곱이 해당 수의 배수이다. (이거 놓쳐서 시간좀 걸렸다...)
프로그래밍에서 수학을 놓고 살 수 있기는 하지만 너무 긴밀한 관계라 어쩔 수 없다. 결국에는 어느정도의 수학적 지식이 필요하다. 할 일이 많다...