약수들 중 최솟값과 최댓값을 곱하여 N을 구하는 문제였습니다.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;
public class p1037 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine());
// 각각 해당 자료형의 최소값과 최대값을 저장한다.
int max = Integer.MIN_VALUE;
int min = Integer.MAX_VALUE;
StringTokenizer st = new StringTokenizer(br.readLine()," ");
while(T-- > 0) {
int N = Integer.parseInt(st.nextToken());
// 1은 약수일 수 없고,
// 진짜 약수는 2보다 크거나 같다.(1,000,000보다 작은 범위)
// N값에 따라 들어올수 있는 약수의 배열이 정해져있다.
// N은 해당 약수중에 최소값과 최대값을 곱하면 구할 수 있다.
max = N > max ? N : max;
min = N < min ? N : min;
}
System.out.println(max * min);
}
}