阿姆斯特朗数:如果一个正整数等于其各个数字的立方和则该数等于阿姆斯特朗数(亦称自恋数)。如407 = 4³ + 0³ + 7³,就是一个阿姆斯特朗数,求1000以内的所有的阿姆斯特朗数。
#include <stdio.h>
#define MAX_SIZE 1024
int ArmStrong_num(int num)
{
int a;
int b;
int c;
a = num / 100;
b = (num - a * 100) / 10;
c = num - a * 100 - b * 10;
if(num == a * a * a + b * b * b + c * c * c)
{
return num;
}
else
{
return 0;
}
}
int main(void)
{
int i;
int num;
printf("The ArmStrong number is:\n");
for(i = 1;i < 1000;i++)
{
num = ArmStrong_num(i);
if(num)
{
printf("%5d",i);
}
}
printf("\n");
return 0;
}
调试结果为:
The ArmStrong number is:
1 153 370 371 407