부르트 포스의 문제이다.
모든 경우의 수를 탐색해보면 되는데, 이때 생성자는 N보다 클 수 없어서 1부터 N까지 반복하면서 생성자를 찾아준다.
가장 작은 생성자를 출력하라고 하였으므로, 오름차순으로 생성자를 찾아나가기때문에 가장 처음 찾은 생성자가 답이 될 것이다.
만약 찾지 못한다면 result가 초기화되지 못하여 그대로 0이 출력될 것이다.
#include <iostream>
using namespace std;
int main() {
int N;
int result = 0;
cin >> N;
for (int i = 1; i < N; i++) {
int sum = 0;
int num = i;
while (num!= 0) { //자릿수마다 더하기
sum += num % 10;
num /= 10;
}
if (sum + i == N) { //조건
result = i;
break;
}
}
cout << result;
return 0;
}