#P1316. Self Numbers

Self Numbers

题目描述

1949年,印度数学家D.R.卡普雷卡尔(D.R. Kaprekar)发现了一类被称为自数(self - numbers)的数。对于任意正整数nn,定义d(n)d(n)nn加上nn的各位数字之和(这里的dd代表“数字相加”,这是卡普雷卡尔创造的一个术语)。例如,d(75)=75+7+5=87d(75)=75 + 7+5 = 87

以任意正整数nn作为起点,你可以构造出一个无限递增的整数序列nnd(n)d(n)d(d(n))d(d(n))d(d(d(n)))d(d(d(n))),... 。例如,若从3333开始,下一个数是33+3+3=3933 + 3+3 = 39,再下一个是39+3+9=5139 + 3+9 = 51,接着是51+5+1=5751 + 5+1 = 57,这样就生成了序列:

3333393951515757696984849696111111114114120120123123129129141141,...

nn被称为d(n)d(n)的生成元。在上述序列中,33333939的生成元,39395151的生成元,51515757的生成元,依此类推。有些数有多个生成元,例如,101101有两个生成元,9191100100。没有生成元的数就是自数。小于100100的自数有1313个:113355779920203131424253536464757586869797

输入

本题没有输入。

输出

编写一个程序,按升序输出所有小于1000010000的正自数,每个数占一行。

输入示例


输出示例

1
3
5
7
9
20
31
42
53
64
 |
 |       <-- a lot more numbers
 |
9903
9914
9925
9927
9938
9949
9960
9971
9982
9993

来源

1998年美国中北部地区竞赛