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)