자기개발👨💻/코딩 알고리즘
[python] 백준 9506 약수들의 합
천숭이
2021. 1. 2. 02:28
9506번: 약수들의 합
어떤 숫자 n이 자신을 제외한 모든 약수들의 합과 같으면, 그 수를 완전수라고 한다. 예를 들어 6은 6 = 1 + 2 + 3 으로 완전수이다. n이 완전수인지 아닌지 판단해주는 프로그램을 작성하라.
www.acmicpc.net
numbers=[]
while(1):
numbers.append(int(input()))
if numbers[-1]==-1: break
numbers=numbers[:-1]
for number in numbers:
tmp=[]
i=1
while(i<number):
if number%i==0:
tmp.append(i)
i+=1
if sum(tmp)==number:
print(number,end=" = ")
for k in range(len(tmp)):
if k<len(tmp)-1:
print(tmp[k],end=" + ")
else:
print(tmp[k])
else:
print(number,"is NOT perfect.")
입력은 -1이 들어올때까지 입력받는다
출력은 완전수일 경우 약수들 사이에 "+" 를 넣어 알맞게 출력
완전수가 아닐 경우 "is NOT perfect"를 출력
이 문제는 약수를 구하는 것보다 출력문에 더 신경써야 하는 문제같다.