水仙花数水仙花数只是自幂数的一种,严格来说3位数的3次幂数才称为水仙花数。
附:其他位数的自幂数名字
一位自幂数:独身数
两位自幂数:没有
三位自幂数:水仙花数
四位自幂数:四叶玫瑰数
五位自幂数:五角星数
六位自幂数:六合数
七位自幂数:北斗七星数
八位自幂数:八仙数
九位自幂数:九九重阳数
十位自幂数:十全十美数
水仙花数又称阿姆斯特朗数。
三位的水仙花数共有4个:153,370,371,407;
四位的四叶玫瑰数共有3个:1634,8208,9474;
五位的五角星数共有3个:54748,92727,93084;
六位的六合数只有1个:548834;
七位的北斗七星数共有4个:1741725,4210818,9800817,9926315;
八位的八仙花数共有3个:24678050,24678051,88593477
……
使用高精度计算,可以得到超过int类型上限的水仙花数:
5: 93084
5: 92727
5: 54748
6: 548834
7: 9800817
7: 4210818
7: 1741725
7: 9926315
8: 24678050
8: 24678051
8: 88593477
9: 146511208
9: 912985153
9: 472335975
9: 534494836
10: 4679307774
11: 32164049650
11:40028394225
11: 42678290603
11: 49388550606
11: 32164049651
11: 94204591914
11: 44708635679
11: 82693916578
14: 28116440335967
16: 4338281769391370
16: 4338281769391371
17: 21897142587612075
17: 35641594208964132
17: 35875699062250035
19: 1517841543307505039
19: 3289582984443187032
19: 4929273885928088826
19: 4498128791164624869
20: 63105425988599693916
21: 449177399146038697307
21: 128468643043731391252
23: 27907865009977052567814
23: 35452590104031691935943
23: 27879694893054074471405
23: 21887696841122916288858
24: 174088005938065293023722
24: 188451485447897896036875
(为环保起见,24位以上的水仙花数略)
最大的水仙花数有39位。十进制自然数中的所有水仙花数共有88个。
水仙花数(4)(非高精度)
以下为在各种编程语言中实现求取水仙花数的方法(非高精度)。
ALGOL代码实现
PHP水仙花数实现代码
PHP所有位数理论输出
pascal代码实现
Visual Basic 的“水仙花数”实现代码
Visual Basic 简单易懂代码实现
Visual Fox Pro 的“水仙花数”实现代码
FORTRAN 的"水仙花数"实现代码
C Print all the Narcissistic numberC between 100 and 999
WRITE(*,30)
DO 10
K=100,999
IA=K/100
IB=MOD(K,100)/10
IC=MOD(K,10)
IF(K.NE.IA**3+IB**3+IC**3) GOTO 10
WRITE(*,20)
K, IA,IB,IC10
CONTINUE20
FORMAT(5X,4I4)30
FORMAT(5X,18HN=I**3+J**3+K**3)
STOP END
C语言的代码实现:
C语言简单易懂代码实现
C++中水仙花数实现代码
C++中任意位数水仙花数实现代码
Erlang中的实现代码
python 中实现的代码
Kotlin 中求三位数的水仙花数
Java 中实现的代码
C# ASP 中的实现代码
补充100以内水仙花数实现代码(同理可根据需求自行增加变量及循环次数,此处仅为举例)
F#的实现代码
JavaScript + HTML 实现
asp 中实现的代码
BASIC水仙花数
1-999999之间
ActionScript实现的方法
(只计3位数)var n:int;var m:int;for (var i:int=1; i<=9; i++) { for (var j:int=1; i<=9; j++) { for (var k:int=1; i<=9; k++) { m=i*100+j*10+k; if (m==i*i*i+j*j*j+k*k*k) { n++; trace(m); } } }}
Delphi实现的方法
(100-999)
MATLAB中实现的方法
swift中实现的方法
用Go语言实现水仙花数
用汇编语言输出水仙花数