[백준] 9506 약수들의 합 Python
2024. 6. 21. 02:16ㆍPython/백준
https://www.acmicpc.net/problem/9506
📝 문제
어떤 숫자 n이 자신을 제외한 모든 약수들의 합과 같으면, 그 수를 완전수라고 한다.
예를 들어 6은 6 = 1 + 2 + 3 으로 완전수이다.
n이 완전수인지 아닌지 판단해주는 프로그램을 작성하라.
🔎 풀이
먼저 입력 받은 수의 모든 약수를 구한 뒤 리스트에 저장해준다.
이후 약수의 합이 입력받은 수와 일치할 때, 리스트에 저장된 수를 하나씩 꺼내 출력한다.
일치하지 않는 경우 완전수가 아니라는 출력문을 출력한다.
💻 코드
while True:
n = int(input())
if n == -1:
break
i = 1
sum = 0
nums = []
while i < n:
if n % i == 0:
nums.append(i)
sum += i
i += 1
if sum == n:
print("%d = " % n, end = "")
for i in nums:
if i != nums[-1]:
print("%d + " % i, end = "")
else:
print(i)
else:
print("%d is NOT perfect." % n)
'Python > 백준' 카테고리의 다른 글
[백준] 2581 소수 Python (1) | 2024.06.21 |
---|---|
[백준] 1978 소수 찾기 Python (1) | 2024.06.21 |
[백준] 2501 약수 구하기 Python (2) | 2024.06.19 |
[백준] 5086 배수와 약수 Python (1) | 2024.06.19 |
[백준] 2869 달팽이는 올라가고 싶다 Python (2) | 2024.06.19 |