어떤 자연수 N 에 대해 그 자연수와 각 자리 수의 합을 더한 값을 분해 합 이라고 한다.
그리고 어떤 자연수 N의 분해합M 에 대해 분해합이 M 이 되는 자연수를 생성자 라고 한다.
이때 어떤 분해합에 대해 그 생성자의 최소값을 구하는 문제 이다.
N = int(input())
result = 0
for i in range(N):
n = i
arr = []
arr.append(n)
while n > 1:
arr.append(int(n%10))
n /= 10
if sum(arr) == N:
result = i
break
print(result)
N = int(input())
result = 0
for i in range(N):
n = i
arr = []
arr.append(n)
while n > 1:
arr.append(int(n%10))
n /= 10
if sum(arr) == N:
result = i
break
print(result)
솔직히 예쁜 코드인진 잘 모르겠다.
아직 파이썬의 문법에 익숙하지 않고 c언어의 로직이 머리속에 박혀 있어 그 영향이 조금 남아 있는 것 같다.