python水仙花数_ghpython_水仙花数

今天咱们来看看老潘微博里的一个python小案例,求100到99999之间的所有水仙花数。

所谓水仙花数,又被称为超完全数字不变数、自恋数、自幂数、阿姆斯壮数、阿姆斯特朗数。是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身(153=1^3+5^3+3^3)。

严格来说,只有3位数的3次幂数才成为水仙花数,水仙花数只是自幂数的一种。

一位自幂数:独身数;二位自幂数:无;三位自幂数:水仙花数;四位自幂数:四叶玫瑰数五位自幂数:五角星数;六位自幂数:六合数;七位自幂数:北斗七星数;八位自幂数:八仙数,九位自幂数:九九重阳数;十位自幂数:十全十美数。

#水仙花数、四叶玫瑰数、五角星数#由于2位数的自幂数不存在,这里直接从100遍历到100000for i in range(100,100000):    #将数字转换为字符串,并求得字符串长度    i=str(i)    len_s=len(i)    sum=0   #设定初始值    #根据字符串长度进行遍历,分别求每一位数字的自幂值,并将其求和    for j in range(len_s):        sum+=int(i[j])**len_s    #如果自幂值的和等于其本身,则其为自幂数,再根据字符串长度判断其自幂数类型    if int(i)==sum:        if len_s==3:            print("水仙花数:%s" % i)        if len_s==4:            print("四叶玫瑰数:%s" % i)        if len_s==5:            print("五角星数:%s" % i)

c161ec3efb3e3eb2a4e19c5c6d04589d.png

deb69b0050f18dcfa0ae2eb4cf0d1341.png


欢迎关注「颜犀设」知乎专栏和知识星球。

3f5f57fe2b3476529952f6012d45d7a3.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值