본문 바로가기

알고리즘 문제풀이/백준

2231번 - 분해합(python3)

문제 링크 : https://www.acmicpc.net/problem/2231

 

2231번: 분해합

문제 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+

www.acmicpc.net

브루트 포스를 이용한 분해합 문제입니다. 무식하게 1~N까지 다 돌려보고, 없으면 0을 출력합니다. 만약 생성자가 있을 경우 해당 생성자를 출력합니다.

x = int(input())
sol = 0
for i in range(1, x):
    num = list(map(int, str(i)))
    if sum(num) + i == x:
        sol = i
        break

print(sol)