今天是第一次写博客,好的开始是成功的一半,加油。
水仙花数(narcissistic number)中的narcissistic本意是“自我陶醉,自赏的,自恋的”。
在希腊神话中,貌美青年那喀索斯(narcissus)爱上了自己在水中的倒影,他死后化作水仙花,此花
即因之命名。所以,水仙花数也称为自恋数,自幂数,本名为超完全数字不变数(pluperfect digital invariant, PPDl)
水仙花数,在我们认识的大概认知,数学概念的自幕数是这样解释的。
自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。
n为1时,自幂数称为独身数。显然,0,1,2,3,4,5,6,7,8,9都是自幂数。
n为2时,没有自幂数。
n为3时,自幂数称为水仙花数,有4个:153,370,371,407;
n为4时,自幂数称为四叶玫瑰数,共有3个:1634,8208,9474;
n为5时,自幂数称为五角星数,共有3个:54748,92727,93084;
n为6时,自幂数称为六合数, 只有1个:548834;
n为7时,自幂数称为北斗七星数, 共有4个:1741725,4210818,9800817,9926315;
n为8时,自幂数称为八仙数, 共有3个:24678050,24678051,88593477;
n为9时,自幂数称为九九重阳数,共有4个:146511208,472335975,534494836,912985153;
n为10时,自幂数称为十全十美数,只有1个:4679307774。
最近自学了python,网上关于代码有很多种算法,其中之一的循环算法很经典
。
-
-
- for i in range(10,1000):
- sum=0
- temp=i
- while temp:
- sum=sum+(temp%10)**3
- temp//=10
- if sum==i:
- print(i)
代码中用到循环语句,
1,第一次循环
sum = sum +(temp%10)**3 意思就是取temp的个位数的立方
temp//=10 意思是除以10,整除去掉余数(例如:283//10=28)也叫地板除
2,第二次循环
sum= sum+(temp%10)**3 这时temp已经变成两位数,现在除10取余数就相当于原数据的十位,二sum=个位的立方(sum)+原数据十位的立方
这是的原理就是一个N位的十进制正整数,如果它的每个位上的数字的N次方的和等于这个数本身,则称其为花朵数,
当然用字符串表示就是
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
for i in range(100,1000):
if i ==sum(int(c)**3 for c in str(i)):
print (i)