알고리즘/백준

파이썬(python) 9506번 약수들의 합

HeyTeddy 2022. 2. 3. 16:06
반응형

문제링크

https://www.acmicpc.net/problem/9506

 

9506번: 약수들의 합

어떤 숫자 n이 자신을 제외한 모든 약수들의 합과 같으면, 그 수를 완전수라고 한다.  예를 들어 6은 6 = 1 + 2 + 3 으로 완전수이다. n이 완전수인지 아닌지 판단해주는 프로그램을 작성하라.

www.acmicpc.net

빈 약수list를 만든 후, 반복문을 통하여 약수를 리스트로 작성.

약수list의 합을 비교한 후, 같으면 join함수를 통하여 결과 도출.

import sys

while True:
    n = int(sys.stdin.readline())
    if n == -1:
        break
    
    n_list = []
    for i in range(1, n):
        if n%i == 0:
            n_list.append(i)
    if sum(n_list) == n:
        print(n, '=', ' + '.join(str(i) for i in n_list))
    else:
        print(n, "is NOT perfect.")
반응형