如果一个 n 位自然数等于自身各个数位上数字的 n 次幂之和,则称此数为自幂数。
自幂数也称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、阿姆斯特朗数(Armstrong number)。
十进制下自幂数都有一个浪漫的名字,如:
一位自幂数:独身数
三位自幂数:水仙花数
四位自幂数:四叶玫瑰数
五位自幂数:五角星数
六位自幂数:六合数
七位自幂数:北斗七星数
八位自幂数:八仙数
九位自幂数:九九重阳数
十位自幂数:十全十美数
以水仙花数为例,其代码如下:
N=''
for i in range(100,1000):
n = str(i)
if pow(eval(n[0]), 3) + pow(eval(n[1]), 3) + pow(eval(n[2]), 3) == i:
N += '{},'.format(i)
print(N[:-1])
结果为153,370,371,407。
同理,可得其他自幂数如下:
独身数:0,1,2,3,4,5,6,7,8,9;
四叶玫瑰数:1634,8208,9474;
五角星数:54748,92727,93084;
六合数:548834;
北斗七星数:1741725,4210818,9800817,9926315;
八仙数:24678050,24678051,88593477;
九九重阳数: 146511208,472335975,534494836,912985153;
十全十美数:4679307774