Python으로 구현한 9506번 약수들의 합 문제 풀이입니다.
https://www.acmicpc.net/problem/9506
while True :
n = int(input())
if n == -1 :
break
number = 2
data = [1]
for i in range(2, n) :
if n % i == 0 :
data.append(i)
result = str(n) + " = 1"
if n == sum(data) :
for j in range(1, len(data)) :
result += " + " + str(data[j])
print(result)
else :
print(str(n) + " is NOT perfect.")
반복문을 통해 입력받은 수의 약수를 구해 data 리스트에 담는다. 약수를 구한 작업이 끝나면 조건문을 통해
입력받은 수와 data 리스트에 담겨있는 수들의 합이 같다면 완전수이기 때문에 문제에서 요구하는 출력 형식에
맞게 data 리스트에서 값을 하나씩 꺼내와 출력하도록 하고, 그렇지 않다면 str(n) + " is NOT perfect." 와 같이 출력한다.
'백준(Python) 풀이 > 수학' 카테고리의 다른 글
백준(Python) 4504번 배수 찾기 풀이 (0) | 2021.10.20 |
---|---|
백준(Python) 10214번 Baseball 풀이 (0) | 2021.10.20 |
백준(Python) 14918번 더하기 풀이 (0) | 2021.10.20 |
백준(Python) 18108번 1998년생인 내가 태국에서는 2541년생?! 풀이 (0) | 2021.10.20 |
백준(Python) 10984번 내 학점을 구해줘 풀이 (0) | 2021.10.20 |