셀프 넘버

시간 제한1초메모리 제한256 MB

문제

셀프 넘버(self number)는 1949년 인도의 수학자 D. R. Kaprekar가 이름 붙인 수이다. 양의 정수 $n$에 대해 함수 $d(n)$을 $n$과 $n$의 각 자리 숫자를 모두 더한 값으로 정의한다. 예를 들어 $d(75) = 75 + 7 + 5 = 87$이다.

양의 정수 $n$이 주어지면 $n, d(n), d(d(n)), d(d(d(n))), \dots$ 과 같은 무한 수열을 만들 수 있다. 예를 들어 33에서 시작하면 다음 수는 $33 + 3 + 3 = 39$, 그 다음은 $39 + 3 + 9 = 51$, 그 다음은 $51 + 5 + 1 = 57$이 되어 다음과 같은 수열이 만들어진다.

$$33, 39, 51, 57, 69, 84, 96, 111, 114, 120, 123, 129, 141, \dots$$

이때 $n$을 $d(n)$의 생성자(generator)라고 한다. 위 수열에서 33은 39의 생성자, 39는 51의 생성자, 51은 57의 생성자이다. 어떤 수는 생성자가 둘 이상일 수도 있다. 예를 들어 101의 생성자는 91과 100으로 두 개이다.

생성자가 하나도 없는 수를 셀프 넘버라고 한다. 100보다 작은 셀프 넘버는 모두 13개로 다음과 같다.

$$1, 3, 5, 7, 9, 20, 31, 42, 53, 64, 75, 86, 97$$

10000보다 작거나 같은 모든 셀프 넘버를 한 줄에 하나씩 출력하는 프로그램을 작성하시오.

입력

입력은 없다.

출력

10000보다 작거나 같은 셀프 넘버를 증가하는 순서로 한 줄에 하나씩 출력한다.