반응형
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 을 이용했다.
반응형
'BOJ > Python' 카테고리의 다른 글
백준 18406번 럭키 스트레이트 파이썬 (0) | 2022.01.12 |
---|---|
백준 10866번 덱 파이썬 (0) | 2022.01.11 |
백준 2750번 수 정렬하기 파이썬 (0) | 2022.01.09 |
백준 1453번 피시방 알바 파이썬 (0) | 2022.01.08 |
백준 1302번 베스트셀러 파이썬 (0) | 2022.01.07 |