水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身。例如:1^3 + 5^3+ 3^3 = 153。水仙花数只是自幂数的一种。
常见水仙花数
水仙花数又称阿姆斯特朗数。
三位的水仙花数共有4个:153,370,371,407;
四位的四叶玫瑰数共有3个:1634,8208,9474;
五位的五角星数共有3个:54748,92727,93084;
六位的六合数只有1个:548834;
七位的北斗七星数共有4个:1741725,4210818,9800817,9926315;
八位的八仙数共有3个:24678050,24678051,88593477;
九位的九九重阳数共有4个: 146511208,472335975,534494836,912985153;
十位的自幂数只有1个:4679307774
其他位数的自幂数名字
一位自幂数:独身数
三位自幂数:水仙花数
四位自幂数:四叶玫瑰数
五位自幂数:五角星数
六位自幂数:六合数
七位自幂数:北斗七星数
八位自幂数:八仙数
九位自幂数:九九重阳数
十位自幂数:十全十美数
/**
* 求水仙花数,例如153=1^3+5^3+3^3
*/
public class Test {
public static void main(String[] args) {
for(int i=0;i<999;i++){
//计算该数字的个数
int count=0;
int tmp=i;
while (tmp!=0){
count++;
tmp=tmp/10;
}
tmp=i;
//计算各个数字的次幂之和
int sum=0;
while(tmp!=0){
sum+=Math.pow(tmp%10,count);
tmp/=10;
}
if(sum==i){//如果和与原数相等
System.out.println(i);
}
}
}
}