【内容介绍】
如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数。例如1^3 +5^3 + 3^3 = 153。当n=3时,又称水仙花数,特指一种三位数,其各个数之立方和等于该数。
水仙花数共有4个,分别为:153、370、371、407。
【1000之内的阿姆斯特朗数列表】
153
370
371
407
【代码实现】
#include<stdio.h>
int setverdict_armstrong(int n);
int main(void)
{
int n;
int i;
int j;
printf("请输入要查找的范围:n = ");
scanf("%d",&n);
for(i=2;i<=n;i++)
{
j = setverdict_armstrong(i);
if(j!= -1)
{
printf("%8d",j);
}
}
return 0;
}
int setverdict_armstrong(int n)
{
int sum = 0;
int k;
int j;
k = n;
while(n !=0)
{
j = n%10;
sum += j*j*j;
n = n/10;
}
if(k == sum)
{
return sum;
//printf("%5d",sum);
}
else
{
return -1;
}
}