https://www.acmicpc.net/problem/1037
1037번: 약수
첫째 줄에 N의 진짜 약수의 개수가 주어진다. 이 개수는 50보다 작거나 같은 자연수이다. 둘째 줄에는 N의 진짜 약수가 주어진다. 1,000,000보다 작거나 같고, 2보다 크거나 같은 자연수이고, 중복되
www.acmicpc.net
내 코드
#https://cookiecumbles94.tistory.com/
import sys
n = int(sys.stdin.readline())
divisors = list(map(int, sys.stdin.readline().rstrip().split()))
big = max(divisors)
small = min(divisors)
print(big*small)
해설
이 문제에서 가장 주목해서 봐야할 부분은 '어떤 수 N의 진짜 약수가 모두 주어질 때' 이다.
이 말의 뜻은 주어진 약수들의 배열에서 가장 작은 약수와 가장 큰 약수를 곱한 값이 이 문제의 정답이기 때문이다.
주어지는 약수의 갯수는 최대 50이므로 max, min함수를 이용해도 시간초과가 일어나지 않으므로 두 함수를 이용하여 문제를 해결하는 것이 가장 편하다.