백준 9506 약수들의 합(파이썬)
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
2022. 8. 22. 14:38