#include <stdio.h>
#include<math.h>
int main() {
int i, t, k, a[4];
printf("输出小于10000的所有的阿姆斯特朗数:\n");
for (i = 1; i < 10000; i++) /*穷举要判定的数i的取值范围1~10000*/
{
for (t=0, k=10000; k>=10; t++) /*拆分i的各位数*/
{
a[t] = (i%k)/(k/10); /*分别将i的各位输入数组a[0]~a[4]*/
k/= 10;
}
if (a[0]+ a[1] + a[2]+ a[3] == i) /*判断i是否为阿姆斯特朗数*/
printf("% d", i); /*输出i*/
else if (pow(a[0], 2) + pow(a[1], 2) + pow(a[2], 2) + pow(a[3], 2) == i)
printf("% d", i);
else if (pow(a[0], 3) + pow(a[1], 3) + pow(a[2], 3) + pow(a[3], 3) == i)
printf("% d", i);
else if (pow(a[0], 4) + pow(a[1], 4) + pow(a[2], 4) + pow(a[3], 4) == i)
printf("% d", i);
}
return 0;
}