반응형
[백준 python] 1037번 약수
레벨: 실버5
언어: python
📑풀이 과정
문제를 보면 N의 약수가 주어진다.
주어지는 약수(A)는 진짜약수라고 해서 A != 1, A !=N
이다
이걸 보면 주어지는 N은 소수가 아니다.
그리고 N의 모든 약수가 주어진다고 했을때
약수의 개수가 1개이면 N은 주어진 약수의 제곱이다. A^2
약수가 1개 이상이면 들어온 약수를 정렬하여 가장 작은 수와 가장 큰수를 곱하면 N을 구할 수 있다.
3 4 2 12 6 8 가 주어질 때
[2, 3, 4, 6, 8, 12] 로 정렬된 배열을 만들고
배열의 처음과 끝 값을 곱하면 N을 구할 수 있다.
📋풀이 코드
import sys
input = sys.stdin.readline
T = int(input())
arr = list(map(int, input().split()))
arr.sort()
if T >1:
print(arr[0]*arr[-1])
else:
print(arr[0]**2)
반응형
'지난 글 모음' 카테고리의 다른 글
[백준 python] 1448번 삼각형 만들기 (삼각형의 조건) - 그리디 (0) | 2022.03.03 |
---|---|
[백준 python] 15904번 UCPC는 무엇의 약자일까? - 그리디 (0) | 2022.03.03 |
[백준 python] 9658번 돌 게임 4 - 동적프로그래밍(DP) (0) | 2022.03.01 |
[백준 python] 2225번 합분해 - 동적프로그래밍(DP) (0) | 2022.02.27 |
[백준 python] 2579번 계단 오르기 - 동적프로그래밍(DP) (0) | 2022.02.27 |