What I Learned/Algorithm Practice
[백준 - python] 9506번: 약수들의 합
Interrobang
2023. 8. 6. 15:59
문제 링크
9506번: 약수들의 합
어떤 숫자 n이 자신을 제외한 모든 약수들의 합과 같으면, 그 수를 완전수라고 한다. 예를 들어 6은 6 = 1 + 2 + 3 으로 완전수이다. n이 완전수인지 아닌지 판단해주는 프로그램을 작성하라.
www.acmicpc.net
문제 풀이
while 1:
n = int(input())
if n == -1:
break
divisor = []
for i in range(1, n):
if n % i == 0:
divisor.append(i)
if n == sum(divisor):
print(n, "=", " + ".join(list(map(str, divisor))))
else:
print(n, "is NOT perfect.")

*key point: 1부터 n-1까지만 반복문을 돌면서 약수를 찾아 리스트에 넣고 활용한다.