解题思路:
本题的难点在于如何判断边界,我们先判断上边界:我们试着以每位数最大单位数9为边界,所以9^5=59049,有5位数,所以5*59049=295245;
下边界:按题目要求,对一个数十进制表示时的每一位数字乘五次方再求和,会得到一个数的五次方数, 因为10以下,只有一位,不存在求和,故从10以后考虑。
#include<stdio.h>
int main()
{int n;for(n=10;n<=295245;n++) //注意边界{int m=1,a,sum=0;while(n/m!=0){a=(n/m)%10; //求出每一位数m*=10;sum+=a*a*a*a*a;}if(sum==n)printf("%d\n",sum);elsecontinue;}return 0;
}















