class N仙花数
{
/*
水仙花数并不陌生,满足这样的3位数,153=1*1*1+5*5*5+3*3*3。有几个呢?4个,153,370,371,407。
那有没有这样的,abcd=a^4+b^4+c^4+d^4? abcde=a^5+b^5+……
请注意,3位数的3次幂,5位数的是5次幂。我不会告诉你92727=9^5+2^5+7^5+2^5+7^5 的。
*/
public static void main(String[] args)
{
for (int x=100;x<10000000 ;x++ )//遍历x的范围
{
int count=1;
for (int y=x;y/10!=0 ;y=y/10 )//用来判断数据是几位数,用count存储。
{
count++;
}
int num=x;
double result=0;
for (;num/10!=0 ;num=num/10 )//遍历数据,从个位到最高减一位。
{
result=result+Math.pow((num%10),count);//累加各个位上count次幂之和,不包括最高位。
}
result=result+Math.pow((num%10),count);//加上最高位的。
if (x==result)//判断是否符合N仙花数规则,符合则输出当前数据的位数和数据。
{
System.out.print(count+"仙花数"+"\t");
System.out.println(x+"\t");
}
}
}
}//为了2个技术分我也是拼了。。。
|
|