编程题
                自我数

来源

Mid-Central USA 1998 (ZOJ1180, POJ1316)

题目描述

1949年,印度数学家D.R.Kaprekar发现了一类叫做自我数(self number)的数。对于任一正整数n,定义d( n )为n加上n的每一位数字得到的总和。例如,d(75) = 75 + 7 + 5 = 87。

取任意正整数n为出发点,可建立一个无穷的正整数序列:n,d(n),d(d(n)),d(d(d(n))),…。

例如,从33开始,下一个数字是33 + 3 + 3 = 39,再下一个是51,…。如此便产生一个整数数列:33,39,51,57,69,84,96,111,114,120,123,129,141,…。

数字n被叫做整数d(n)的生成器。在如上的数列中,33是39的生成器,39是51的生成器,等等。有些数字有多于一个生成器,如101有两个生成器,91和100。而没有生成器的数字则称做自我数(self number)。100以内的自我数共有13个:1,3,5,7,9,20,31,42,53,64,75,86,和97。

输入描述

此题无输入。

输出描述

输出所有小于或等于1000000的正的自我数,以升序排列,并且每个数占一行。

样例输入

此题无输入。

样例输出

1
3
5
… <— 这里有许多自我数
9949
…
查看答案
赣ICP备20007335号-2