题目描述
如果一个正整数等于其各个数字的立方和,则称该数为阿姆斯特朗数(亦称为自恋性数)。
如 407=4^3+0^3+7^3就是一个阿姆斯特朗数。
试编程求大于1小于1000的所有阿姆斯特朗数。
输出 从小到大输出,数之间用两个空格分开
样例输出 153 370 371 407
提示 可采用穷举法,依次取1000以内的各数(设为i),将i的各位数字分解后,据阿姆斯特朗数的性质进行计算和判断。
#include<stdio.h>
#include<math.h>
int main(){
int i;
int g,s,b;
for(i=2;i<1000;i++){
if(i<10){
g=i%10;
if(pow(g,3)==i)
printf("%d ",i);
}
else if(i>=10&&i<100){
g=i%10;
s=i/10;
if(pow(g,3)+pow(s,3)==i)
printf("%d ",i);
}
else{
g=i%10;
s=i/10%10;
b=i/100;
if(pow(g,3)+pow(s,3)+pow(b,3)==i)
printf("%d ",i);
}
}
return 0;
}