

어제 한 번 풀어봤다고 오늘은 문제 이해가 좀 쉬웠던 것 같다.
어떤 수 N의 약수의 개수와 약수를 주고, 프로그램이 N을 구하도록 하면 된다. 문제에서 약수의 개수를 언급한 탓에 처음엔 길을 잃을 뻔 했다.
이 문제는 약수의 특징을 생각해보면 쉽게 풀 수 있는 문제다. 약수는 1과 자기자신을 제외한, 나누어 떨어지는 수들의 모음이다. 이 수들을 오름차순으로 정렬했을 때, 첫 번째로 오는 수와 마지막에 오는 수들을 서로 곱하면 원래의 숫자 N이 된다.
따라서 입력된 약수들을 리스트에 정리한 다음 리스트의 첫 번째 수와 마지막 수를 곱하면 N이 나온다.
count = int(input())
divisor = list(map(int, input().split()))
if not(count > 50 or count != len(divisor)):
divisor.sort()
print(divisor[0]*divisor[-1])
아! 약수들을 입력받을 땐 엔터가 아니라 한 줄로 입력받으니 그 점도 생각해서 map으로 입력받은 다음, list로 형변환을 해줬다.