728x90
반응형
BaekJoon 백준 14563 완전수 문제는 진약수의 합이 자신인 수를 완전수, 자기 자신보다 작은 경우를 부족수, 자기 자신보다 큰 경우를 과잉 수라고 한다. 어떤 수가 주어질 때 이 수가 완전수인지, 부족수인지, 과잉수인지를 구하는 문제이다. 난이도는 Bronze 1이다.
BaekJoon 14563 완전수 문제 정보
출처
- https://www.acmicpc.net/problem/14563
알고리즘 분류
- 수학, 정수론
난이도
- 브론즈 1 / Bronze 1
완전수 문제 요약
- 어떠한 자연수 N에 대해서 N을 제외한 약수(진약수)의 합이 N이 되는 자연수를 완전수라고 한다. 예를 들어, 6의 약수는 1, 2, 3, 6인데 1+2+3은 6이기 때문에 완전수이다.
- 또 진약수의 합이 자기 자신보다 작은 경우를 부족수, 진약수의 합이 자기 자신보다 큰 경우를 과잉 수라고 한다.
- 어떤 수가 주어질 때 이 수가 완전수인지, 부족수인지, 과잉수인지를 구하여 출력한다.
- 완전 수면 ‘Perfect’, 부족 수면 ‘Deficient’, 과잉 수면 ‘Abundant’를 출력한다.
- 자연수의 개수 T가 주어진다. T은 1000보다 작은 수이다.
- 완전수인지 구해야 되는 자연수 N이 주어진다.(N <10000)
문제 풀이 과정
- 완전수인지 구할 자연수의 개수를 입력받는다.
- 자연수들을 입력받는다.
- 각각의 자연수들에 대해 진약수의 합을 구하기 위해, 자신을 제외한 자연수의 약수(진약수)를 구하여 모두 합한다.
- 진약수의 합과 자신을 비교하여 완전 수면 ‘Perfect’, 부족 수면 ‘Deficient’, 과잉 수면 ‘Abundant’를 출력한다.
코드 및 설명
T = int(input())
N = list(map(int, input().split()))
for n in N:
sum = 0
for i in range(1, n):
if n % i == 0:
sum += i
if sum == n:
print('Perfect')
elif sum > n:
print('Abundant')
else:
print('Deficient')
BaekJoon 백준 14563 완전수 문제를 파이썬 python으로 풀어보았다. 난이도는 Bronze 브론즈 1이다.
728x90
반응형
'Algorithm Problem Solving > BaekJoon' 카테고리의 다른 글
[BaekJoon] 백준 3226 전화 요금 (Python / 파이썬) (0) | 2021.08.28 |
---|---|
[BaekJoon] 백준 16360 Go Latin (Python / 파이썬) (0) | 2021.08.28 |
[BaekJoon] 백준 20001 고무오리 디버깅 (Python / 파이썬) (0) | 2021.08.28 |
[BaekJoon] 백준 3060 욕심쟁이 돼지 (Python / 파이썬) (0) | 2021.08.27 |
[BaekJoon] 백준 3041 N-퍼즐 (Python / 파이썬) (0) | 2021.08.27 |
댓글