[Algorithm] 백준 1037번 약수(파이썬)

백준 #1037

문제 바로가기


문제

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

입출력 규칙

1. 입력

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

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

문제접근

이번 문제는진짜 약수를 구하는 문제로, 진짜 약수란 서로 곱했을때 원래의 수가 출력되는 수이다. 입력값으로 첫째줄에는 N의 진짜 약수의 개수, 둘째줄에는 N의 진짜약수가 주어지며, 진짜 약수에서 가장 작은 수와 가장 큰 수를 곱하면 N을 구할 수 있으므로 내장함수인 max와 min을 이용해 문제를 풀면 된다.

  1. 첫째줄에 약수의 개수가 들어오므로 N 변수에 입력값을 받는다.
  2. 둘째줄의 진짜 약수를 받기 위하여 map함수로 들어온 값들을 int(정수형)으로 바꿔 real 변수에 입력값을 받는다.
  3. max 함수와 min 함수를 이용해여 각각 변수에 값을 받는다.
  4. 가장 큰값과 가장 작은값을 곱하여 출력하면 진짜 약수를 구할 수 있다.

문제풀이(Python)

N = int(input())
real = list(map(int, input().split()))

max_num = max(real)
min_num = min(real)

print(max_num * min_num)

풀이를 통해 배운 것

  • 내장함수인 max, min을 사용해볼 수 있었다.

좋은 웹페이지 즐겨찾기