BOJ/Python

백준 9506번 약수들의 합 파이썬

띵지니어 2022. 1. 10. 01:24
반응형

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

 

9506번: 약수들의 합

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

www.acmicpc.net

 

while True:
    x = int(input())
    if x == (-1):
        break
    else:
        lst = []
        cnt = 0
        for i in range(1, x): # 약수 다 찾기
            if x % i == 0:
                lst.append(i)
        for i in lst: # 약수 더한값 계산
            cnt += i
        if cnt == x:
            print(f'{x} = 1',end = "")
            for i in range(1,len(lst)):
                print(f' + {lst[i]}',end = "")
            print()
        else:
            print(f'{x} is NOT perfect.')

좀 쓰인 게 많지만 간단하게 말하면

어떤 x 값의 약수들을 다 구하고 자기 자신을 제외한 뒤 나머지 약수들을 다 더한 게 x 값이랑 동일하면 된다고 생각하면서 코드를 짰다.

출력은 f-String 을 이용했다.

 

반응형
목차(index)