T557004 062-01-C23-自我数

题目描述

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。 输入一个正整数N,N≤100000,输出第N个自我数。

输入格式

输入占一行,为一个正整数N。

输出格式

输出数据占一行,为第N个自我数。

说明/提示

### 本题出处 本题源自以下教材的编程习题:王桂平, 周思益, 周迎川著. C++编程与信息学竞赛数学基础, 北京大学出版社, 2025年7月出版.