728x90
반응형
https://www.acmicpc.net/problem/9506
문제 해결
- 완전수의 가장 클 수 있는 약수는 n%2==0일 때 n//2
- 따라서 1부터 n//2+1까지 for문을 통해 나눠 떨어지는 수를 찾는다.
- 더해서 n이 나오면 완전수이다. 표현은 n,=은 각각 sep=' '로 출력하고 ' + '.join을 통해 더하기를 표현할 수 있다.
- 아니면 N is NOT perfect. 나오도록 출력
CODE
import sys
input = sys.stdin.readline
while True:
n = int(input())
if n == -1:break
ans = []
for i in range(1,n//2+1):
if n%i ==0:
ans.append(i)
if n == sum(ans):
print(n,'=',' + '.join(map(str,ans)),sep=' ')
else:
print(n, 'is NOT perfect.', sep=' ')
728x90
반응형
'알고리즘 > [python] 백준 BOJ' 카테고리의 다른 글
[python] 백준 2810 컵홀더 (0) | 2023.03.17 |
---|---|
[python] 백준 2212 센서 (0) | 2023.03.17 |
[python] 백준 10825 국영수 (0) | 2023.03.16 |
[python] 백준 2812 크게 만들기 (0) | 2023.03.16 |
[python] 백준 3109 빵집 (0) | 2023.03.16 |
댓글