/*
在数论中,水仙花数(Narcissistic number)也称为自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),是指一N位数,其各个数之N次方和等于该数。
例如153、370、371及407就是三位数的水仙花数,其各个数之立方和等于该数:
153 = 13 + 53 + 33。
370 = 33 + 73 + 03。
371 = 33 + 73 + 13。
407 = 43 + 03 + 73。
*/
// boosttest.cpp : Defines the entry point for the console application.
//
#include <iostream>
using namespace std;
int getPower(int number,int pow)
{
int retval = 1;
for ( int i = 0 ; i < pow; i ++ )
{
retval *= number;
}
return retval;
}
bool isNum( int number )
{
if ( number <= 0 )
{
return false;
}
int digitNum = 0;
int inputNum = number;
while ( number )
{
int lowerNumber = number % 10;
number = (number-lowerNumber)/10;
digitNum ++;
}
int currentValue = 0;
number = inputNum;
while ( number )
{
int lowerNumber = number % 10;
currentValue += getPower(lowerNumber,digitNum);
number = (number - lowerNumber)/10;
}
return currentValue == inputNum;
}
int main()
{
for (int i = 100; i < 1000000 ; i ++ )
{
if ( true == isNum(i) )
{
cout << i <<endl;
}
}
return 0;
}