문제
첫째 줄에 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)'Algorithm > 백준' 카테고리의 다른 글
| [BAEKJOON] 2577번: 숫자의 개수 (0) | 2023.09.04 |
|---|---|
| [BAEKJOON] 10808번: 알파벳 개수 (0) | 2023.09.04 |
| [BAEKJOON] 4375번: 1 (0) | 2023.08.24 |
| [BAEKJOON] 2004번: 조합 0의 개수 (0) | 2023.08.24 |
| [BAEKJOON] 1676번: 팩토리얼 0의 개수 (0) | 2023.08.23 |