#include<stdio.h>
#include<math.h>
int main()
{
int i = 0;
for (i = 0; i <= 100000; i++)//产生0~100000的数
{
//判断是否为自幂数
// 1.计算i的位数 - n
int n = 1;
int tmp = i;
while ( tmp/ 10)//123
{
n++;
tmp = tmp/ 10;//12
}
// 2.计算i的每一位的n次方之和
//123
tmp = i;
int sum = 0;
while (tmp)
{
//pow是用来求次方数
sum += pow(tmp % 10, n);//计算次方的函数,计算n次方
tmp = tmp / 10;
}
//3.判断
if (sum == i)
{
printf("%d ", i);
}
}
return 0;
}