Algorithm/백준
[BAEKJOON] 1037번: 약수
NegotiationMan
2023. 8. 24. 19:52
문제
첫째 줄에 N의 진짜 약수의 개수가 주어진다. 이 개수는 50보다 작거나 같은 자연수이다. 둘째 줄에는 N의 진짜 약수가 주어진다. 1,000,000보다 작거나 같고, 2보다 크거나 같은 자연수이고, 중복되지 않는다.
코드
import sys
input = sys.stdin.readline
n = int(input())
num = sorted(list(map(int, input().split())))
print(num[0]*num[-1])
나의 생각
어떤 수의 약수는 대칭적인 특징을 가진다.
예를 들자면 12의 약수는 1, 2, 3, 4, 6, 12이다.
1 x 12 = 2 x 6 = 3 * 4
이것을 이용해서 첫 번째 약수와 마지막 약수를 곱하여 특정 수를 찾아낼 수 있다.
min()과 max()로 똑같이 구현할 수 있다.
n = int(input())
num = list(map(int, input().split()))
a = min(num)
b = max(num)
print(a*b)