728x90
문제
양수 A가 N의 진짜 약수가 되려면, N이 A의 배수이고, A가 1과 N이 아니어야 한다. 어떤 수 N의 진짜 약수가 모두 주어질 때, N을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 N의 진짜 약수의 개수가 주어진다. 이 개수는 50보다 작거나 같은 자연수이다. 둘째 줄에는 N의 진짜 약수가 주어진다. 1,000,000보다 작거나 같고, 2보다 크거나 같은 자연수이고, 중복되지 않는다.
출력
첫째 줄에 N을 출력한다. N은 항상 32비트 부호있는 정수로 표현할 수 있다.
출처
https://www.acmicpc.net/problem/1037
문제풀이
이 문제의 경우에는 단순 추측만으로 어떻게 전체를 구해야하는지에 대한 의문을 가질 수 있다.
하지만 약수에 대한 이해가 있다면 쉽다.
얼마나 많은 약수가 나오든, 얼마나 적게 나오든
1을 제외한 약수들이 제시됨으로 약수를 리스트나 벡터 같은 자료구조에 넣은뒤에
오름차순이나 내림차순으로 정렬을 하고나서
끝과 끝을 곱하면 우리가 원하는 결과값이 나온다.
크게 어떠한 알고리즘을 요구하기보다는 수에대한 이해를 요구하는 문제였다고 생각한다.
내 소스코드
1
2
3
4
5
6
7
8
|
num = int(input())
num_list = list(map(int, input().split()))
result_list = sorted(num_list)
print(result_list[0] * result_list[num-1])
|
cs |
728x90
'BaekJoon' 카테고리의 다른 글
[백준 알고리즘] 1427번 : 소트인사이드 (JAVA) 문제 풀이 (0) | 2021.08.25 |
---|---|
[백준 알고리즘] 1312번 : 소수 (Python) 문제 풀이 (0) | 2021.08.25 |
[백준 알고리즘] 11653번 : 소인수분해 (JAVA) 문제 풀이 (0) | 2021.08.25 |
[백준 알고리즘] 10828번 : 스택 (Python) 문제 풀이 (0) | 2021.08.25 |
[백준 알고리즘] 10826번 : 피보나치 수4 (Python) 문제 풀이 (0) | 2021.08.25 |