■ 9506번 약수들의 합 문제
■ 코드 풀이
크게 어렵지 않은 코드입니다. -1이 입력되기 전까지는 계속 while문을 반복하며, 숫자를 입력받습니다. 그리고 자기 자신을 제외한 약수들을 num_list에 저장합니다. 그리고 약수의 합을 total 변수에 저장합니다. 반복문이 끝나면, 문제에서 제시한 출력 양식에 맞춰 출력하면 됩니다.
while True:
num_list = []
total = 0
n = int(input())
if n == -1:
break
for i in range(1, n//2+1):
if n % i == 0:
num_list.append(i)
total += i
if total == n:
temp = ' + '.join(str(i) for i in num_list)
print(n, '=', temp)
else:
print('{} is NOT perfect.'.format(n))
혹시 for문의 range 상한 값에 n//2+1이 왜 들어가는지 이해가 안 가신다면 아래 링크를 참고해 주세요.
'코딩 테스트 > Python_백준' 카테고리의 다른 글
[백준/Python] 2581번 소수 문제 (0) | 2023.04.15 |
---|---|
[백준/Python] 1978번 소수 찾기 문제 (0) | 2023.04.14 |
[백준/Python] 5086번 배수와 약수 문제 (0) | 2023.04.12 |
[백준/Python] 2501번 약수 구하기 문제 (0) | 2023.04.12 |
[백준/Python] 10757번 큰 수 A+B 문제 (2) | 2023.04.11 |
댓글