如果一个正整数等于其各个数字的立方和,则称该数为阿姆斯特朗数(亦称为自恋性数)。如 407=4^3+0^3+7^3就是一个阿姆斯特朗数。试编程求1000以内的所有阿姆斯特朗数。
#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
bool check2(int n);//检查阿姆斯特朗数
int main()
{
int n;
int i=0;
cout<<"阿姆斯特朗数:"<<endl;
//cout<<check2(407)<<endl;
for(int n=1;n<=100000;n++)
{
if(check2(n))
{
cout<<setw(4)<<n<<" ";
i++;
if(i%10==0)cout<<endl;
}
}
return 0;
}
bool check2(int n)
{
int m=0;
int s=n;
while(n)
{
m+=(n%10)*(n%10)*(n%10);
n=n/10;
}
if(m==s)return true;
return false;
}