백준 9506번 문제
약수들의 합
문제

풀이
1.
이 문제가 원하는 요구조건은
1. n의 약수를 구하기
2. n이 완전수인지 구하기
3. 약수들과 약수들의 합으로 출력하기
4. -1이 나오면 반복 중단하기
이다.
먼저 인풋 n의 약수를 구해서 리스트로 저장한다. 그 후, 리스트의합이 n의 2배라면 완전수이다. n이 리스트에 포함되니까 n의 2배 하거나 리스트의합 - n을 하는게 맞다.
아니면 리스트에 조건을 붙여서 아예 n을 빼는것도 좋을거 같다.
그 후 프린트 할때 +를 join하면 리스트의 숫자 사이에 + 가 들어가서 원하는데로 나올 것이다.
결과
import sys
while True:
n = int(sys.stdin.readline().strip())
factors = []
if n == -1:
break
for i in range(1,n):
if n % i == 0:
factors.append(i)
if sum(factors) == n :
print(f"{n} = " + " + ".join(str(j) for j in factors))
else :
print(f"{n} is NOT perfect.")
약수 구할때 일부터 n으로 해서 n에는 못도달하게 설정했다.
Coding_Test/백준/Bronze/9506. 약수들의 합 at main · K-MarkLee/Coding_Test · GitHub
Coding_Test/백준/Bronze/9506. 약수들의 합 at main · K-MarkLee/Coding_Test
This is an auto push repository for Baekjoon Online Judge created with [BaekjoonHub](https://github.com/BaekjoonHub/BaekjoonHub). - K-MarkLee/Coding_Test
github.com
'코딩테스트 > BaekJoon' 카테고리의 다른 글
| 백준 파이썬 코딩테스트 (소수) (0) | 2025.09.03 |
|---|---|
| 백준 파이썬 코딩테스트 (소수 찾기) (0) | 2025.09.02 |
| 백준 파이썬 코딩테스트 (약수 구하기) (3) | 2025.08.28 |
| 백준 파이썬 코딩테스트 (배수와 약수) (1) | 2025.08.26 |
| 백준 파이썬 코딩테스트 (달팽이는 올라가고 싶다) (1) | 2025.08.25 |