문제가 한 줄이라 마음의 평화를 얻었다.
이 문제에서 말하는 "진짜 약수"란 자연수 N의 약수 중 1과 N자기 자신을 제외한 나머지 약수들을 의미한다.
자연수 12로 예를 들자면 원래의 12의 약수는 (1,2,3,4,6,12)와 같지만, 위 문제의 "진짜 약수"들은 1과 12를 제외한 (2,3,4,6)이 되겠다.
입력값으로 첫째 줄에 진짜 약수의 개수, 둘째 줄에는 진짜 약수들이 입력이 되는데,
어떤 수에 대한 진짜 약수들을 일일이 써보면 한 가지 규칙을 알아낼 수 있다.
진짜 약수들을 오름차순으로 정렬하고, 첫번째 수와 마지막 수를 곱하면 자연수 N 된다는 것이다.
규칙을 찾는 문제였던 것.. 자연수를 주고 진짜 약수를 구하라 했으면 난이도가 300배 정도 상승하지 않았을까?
ex) 12 = 2, 3, 4, 6 -> (2 * 6 = 12)
ex) 24 = 2, 3, 4, 6, 8, 12 -> (2 * 12 = 24)
그러므로.. 답안 코드는 간단하다.
N = int(input())
A = list(map(int, input().split()))
max_num = max(A)
min_num = min(A)
print(max_num * min_num)
인풋 값 중 가장 작은 값과 가장 큰 값을 곱하면 끝이다.