양수 A가 N의 진짜 약수가 되려면, N이 A의 배수이고, A가 1과 N이 아니어야 한다. 어떤 수 N의 진짜 약수가 모두 주어질 때, N을 구하는 프로그램을 작성하시오.
첫째 줄에 N의 진짜 약수의 개수가 주어진다. 이 개수는 50보다 작거나 같은 자연수이다. 둘째 줄에는 N의 진짜 약수가 주어진다. 1,000,000보다 작거나 같고, 2보다 크거나 같은 자연수이고, 중복되지 않는다.
첫째 줄에 N을 출력한다. N은 항상 32비트 부호있는 정수로 표현할 수 있다.
문제에서 말하는 "진짜 약수"는 자연수 N의 약수 중 1과 N자기 자신을 제외한 나머지 약수들을 의미한다.
약수는 오름차순으로 정렬했을 때 양쪽 끝에서 n번째 값과 짝을 이뤄 곱하면 항상 같은 수가 나오기 때문에 약수의 가장 작은 값과 가장 큰 값을 곱하면 어떤 수의 약수인지 알 수 있다.
ex) 12의 약수 (1, 2, 3, 4, 6, 12) --> 1*12 = 2*6 = 3*4 = 12 이 경우, 1과 자기 자신 12를 제외한 최솟값과 최댓값인 2, 6을 곱하면 원래 수를 알 수 있다.
N = int(input())
A = list(map(int, input().split())) # 진짜 약수들을 리스트에 담아준다.
max_num = max(A) # 최댓값 구하는 max함수 사용
min_num = min(A) # 최솟값 구하는 min함수 사용
print(max_num * min_num) # 최댓값 * 최솟값 출력