반응형
백준 9506번 문제는 약수들의 합을 구해 완전수 (perfect number)인지 아닌지를 판별하는 문제입니다.
저는 다음과 같이 풀었습니다.
- while 문으로 exit (-1)전까지 입력을 받습니다.
- 1부터 n까지 for문을 돌면서, 나머지가 없는 즉, 모든 약수 (factor)를 리스트에 기록합니다.
- 약수의 합이 입력 값(n)과 같은지 확인하고
- 맞다면 형식에 맞춰 출력을 진행
if __name__ == '__main__':
while True:
n = int(input())
result = []
if n == -1:
break
else:
for i in range(1, n):
if n % i == 0:
result.append(i)
if n == sum(result):
result = list(map(str, result))
answer_string = f"{n} = " + " + ".join(result)
print(answer_string)
else:
answer_string = f"{n} is NOT perfect."
print(answer_string)
반응형
'알고리즘' 카테고리의 다른 글
[백준 24313] 점근적 표기 1 문제 풀이 & 해설 - 파이썬 (0) | 2024.03.24 |
---|---|
[python] 등차수열과 등차수열의 합 (0) | 2024.03.24 |
[백준 11005] 진법 변환 2 - 파이썬 (0) | 2024.03.18 |
[백준 2563번] 색종이 - 파이썬 (1) | 2024.03.17 |
[백준 10798번] 세로 읽기 파이썬 (0) | 2024.03.17 |