백준 2231. 파이썬 분해 파이썬 풀기

문제


문제 링크

https://www.acmicpc.net/problem/2231

2231번: 분해

어떤 자연수 N이 있을 때 자연수 N의 분해 합은 N과 N의 각 자리의 합을 의미한다. 임의의 자연수 M의 분해가 N이면 M을 N의 생성자라고 한다. 예를 들어, 245의 분해는 256(=245+2+4+5)입니다.

www.acmicpc.net

코드 해결

def d_plus(k):
    k_sum = k
    div = str(k)
    for d in div:
        k_sum += int(d)
    return k_sum


n = int(input())
n_len = len(str(n))
minus = 9 * n_len

for i in range(max(n-minus, 1), n):
    if d_plus(i) == n:
        print(i)
        exit()
print(0)