728x90
[백준] 9506번 Python 파이썬
https://www.acmicpc.net/problem/9506
9506번: 약수들의 합
어떤 숫자 n이 자신을 제외한 모든 약수들의 합과 같으면, 그 수를 완전수라고 한다. 예를 들어 6은 6 = 1 + 2 + 3 으로 완전수이다. n이 완전수인지 아닌지 판단해주는 프로그램을 작성하라.
www.acmicpc.net
c = []
while True:
a = int(input())
for i in range(1, a): # a는 약수에 포함되지 않아야 하므로 범위를 1부터 a-1로 정해준다.
if a % i == 0: # 빈 리스트 c에 a의 약수들을 대입한다.
c.append(i)
if a == -1: # 입력이 -1일 경우, 실행을 종료한다.
break
if sum(c) == a: # 자기 자신을 제외한 a의 약수들의 합이 a와 같다면 10번째 줄과 같이 출력한다.
print(a, ' = ', ' + '.join(str(i) for i in c), sep = '')
c = []
else:
print(a, 'is NOT perfect.')
c = []
완전수를 출력할 때, sep = ''을 쓰지 않아서 '출력 형식이 잘못되었습니다'가 떴다.
728x90
'BAEKJOON (Python) > 단계별' 카테고리의 다른 글
BAEKJOON_11653 "소인수분해" PYTHON (0) | 2023.03.04 |
---|---|
BAEKJOON_1427 "소트인사이드" PYTHON (0) | 2023.03.03 |
BAEKJOON_2501 "약수 구하기" PYTHON (0) | 2023.03.02 |
BAEKJOON_5086 " 배수와 약수" PYTHON (0) | 2023.03.02 |
BAEKJOON_10250 " ACM 호텔" PYTHON (0) | 2023.03.01 |