1. 문제 설명
2. 코드
test_cases = []
while True:
n = int(input())
if n == -1:
break
test_cases.append(n)
for n in test_cases:
divisors = []
for i in range(1,n):
if n % i == 0:
divisors.append(i)
if sum(divisors) == n:
print(f"{n} = {' + '.join(map(str, divisors))}")
else:
print(f"{n} is NOT perfect.")
3. 풀이 과정
test_cases에 테스트할 숫자들을 저장하는 리스트를 작성한다.
while True로 무한 반복문을 실행한다.
n에 정수로 입력받고, n이 -1이면 while문을 break한다.
아니면 test_cases에 append()로 추가한다.
test_cases가 완성되면 for문의 n으로 하나씩 반복한다.
빈 리스트인 divisors를 선언한 후 1부터 n까지의 range()를 반복한다.
n을 i로 나눈 나머지가 0인 약수라면 appned()로 약수 i를 추가한다.
divisors값들을 sum()으로 합한 값이 n과 같다면 f-string으로 약수들의 합을 작성한다.
같지 않다면 f-string으로 구문을 작성한다.
'Baekjoon > 단계별로 풀어보기' 카테고리의 다른 글
[백준][9단계 약수,배수와 소수] 2581번 /소수 (파이썬/Python) (0) | 2025.04.10 |
---|---|
[백준][9단계 약수,배수와 소수] 1978번 /소수 찾기 (파이썬/Python) (0) | 2025.04.09 |
[백준][9단계 약수,배수와 소수] 2501번 /약수 구하기 (파이썬/Python) (0) | 2025.04.05 |
[백준][9단계 약수,배수와 소수] 5086번 /배수와 약수 (파이썬/Python) (0) | 2025.04.05 |
[백준][8단계 일반 수학 1] 2869번 /달팽이는 올라가고 싶다 (파이썬/Python) (0) | 2025.04.05 |