1.字幂数的定义
一个数的位数的n次方之和等于这个数本身。例如:1^3 +5^3 +3^3=153。
2.解决方案
(1)我们可以使用一个循环来取遍1~10000。
(2)求i的位数n。
(3)求i的位数的n次方之和sum。
(4)判断sum是否等于i。
#include<stdio.h>
#include<math.h>
int main()
{
int i;
for(i=1;i<=10000;i++)
{
int tmp=i;int n=1;
while(tmp/10)
{
n++;
tmp/=10;
}
int sum=0;
tmp=i;
while(tmp)
{
sum+=(int)pow(tmp%10,n);
tmp/=10;
}
if(sum==i)
printf("%d ",i);
}
return 0;
}