티스토리 뷰

📌문제

어떤 숫자 n이 자신을 제외한 모든 약수들의 합과 같으면, 그 수를 완전수라고 한다.

예를 들어 6은 6 = 1 + 2 + 3 으로 완전수이다.

n이 완전수인지 아닌지 판단해주는 프로그램을 작성하라.

 

📌풀이

1부터 n-1까지 n을 나눴을 때 0으로 나누어 떨어지는 수를 찾아서 nums 리스트에 추가

만약 nums 리스트의 합이 n이라면(완전수) 주어진 형식대로 출력

nums 리스트의 각 요소를 문자열로 바꾼 후 +로 연결(join)하여 출력

 

📌코드

while 1:
    n = int(input())
    if n == -1:
        break
    nums = []  # 약수 저장할 리스트
    for i in range(1, n):
        if n % i == 0:
            nums.append(i)
    if sum(nums) == n:
        print(n, "=", " + ".join(map(str, nums)))
    else:
        print(n, "is NOT perfect.")

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
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
글 보관함