题目
对一个数十进制表示时的每一位数字乘五次方再求和,会得到一个数的五次方数
例如:1024的五次方数为1+0+32+1024=1057
有这样一些神奇的数,它的五次方数就是它自己,而且这样的数竟然只有有限多个,从小到大输出所有这样的数。
输入
无
输出
每个数独立一行输出
样例输入
无
样例输出
无
解题思路
遍历查找。
难点
- 本题不包含0、1(不知道为啥,反正输出0、1就是不对);
- 上边界的确定:我才用的是暴力的方法,先更改上边界到较大且不会超时的部分,然后看结果输出,发现最后一个数总是194979,因此上边界可以设定为200000。
代码
#include<stdio.h>
#include<math.h>
int times(int n){
int temp;
int sum = 0;
while (n!=0){
temp = n%10;
n/=10;
sum+=pow(temp,5);
}
return sum;
}
int main()
{
int k;
for (k=2;k<200000;k++)
if (times(k)==k)
printf("%d\n",k);
return 0;
}