티스토리 뷰

문제 링크

 

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.")

9506 입출력 예시

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

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함