티스토리 뷰
while True:
list = []
n = int(input())
if n == -1:
break
for i in range(1, n//2+1): # 가장큰약수는 수의 절반
if n % i == 0:
list.append(i) # 약수면 list에 넣는다
if sum(list) == n: # 약수의 합이 수와 같다면 완전수
print("{} =".format(n) ,end=" ")
for i in list:
if i == list[-1]: # 마지막 항에는 +를 붙이기 않기 위함
print(i)
else:
print(i, end=" + ")
else:
print(n, "is NOT perfect.")
'프로그래밍 > Python' 카테고리의 다른 글
[Jupyter Notebook] 주요 단축키 모음 (0) | 2022.08.25 |
---|---|
백준 11557 Yangjojang of The Year(파이썬) (0) | 2022.08.22 |
백준 8958 OX퀴즈(파이썬) (0) | 2022.08.22 |
백준 7567 그릇(파이썬) (0) | 2022.08.22 |
백준 1789 수들의 합(파이썬) (0) | 2022.08.19 |