본문 바로가기
코딩테스트 문제풀이(Python)

백준 1037번 문제풀이 (파이썬)

by chanfficial 2022. 5. 15.

1037. 약수

 

 

양수 A가 N의 진짜 약수가 되려면, N이 A의 배수이고, A가 1과 N이 아니어야 한다. 어떤 수 N의 진짜 약수가 모두 주어질 때, N을 구하는 프로그램을 작성하시오.

 

 

입력 : 첫째 줄에 N의 진짜 약수의 개수가 주어진다. 이 개수는 50보다 작거나 같은 자연수이다. 둘째 줄에는 N의 진짜 약수가 주어진다. 1,000,000보다 작거나 같고, 2보다 크거나 같은 자연수이고, 중복되지 않는다.

출력 : 첫째 줄에 N을 출력한다. N은 항상 32비트 부호있는 정수로 표현할 수 있다.

 

 

ex)

입력1 :

1
2

출력1:

4

 

입력2 :

6
3 4 2 12 6 8

출력2 :

24

 

 

 

 

 

 

풀이

count = int(input())
aliquot = list(map(int, input().split()))

aliquot.sort()
n = aliquot[0] * aliquot[len(aliquot) - 1]

print(n)

- 먼저 n의 약수의 개수인 count를 입력받고, 그 다음으로 n의 약수들을 입력받아 aliqout(약수) 리스트를 생성했다.

주어진 약수로 N을 구하는 방법

위의 그림처럼 n을 구하기 위해 약수 리스트인 aliquot를 sort()를 사용하여 오름차순으로 정렬했고, aliquot의 첫 번째 요소와 마지막 요소를 곱하여 n을 구한 다음 출력하게 했다.