关于水仙花数问题——python

编写一个程序,求 100~999 之间的所有水仙花数。

如果一个 3 位数等于其各位数字的立方和,则称这个数为水仙花数。例如:153 = 1^3 + 5^3 + 3^3,因此 153就是一个水仙花数。

这个问题本身并不难,从题目中已经得知判断的标准是:满足方程abc = a^3 + b^3 + c^3即可,
所以解决问题的关键是将一个三位数的百位,十位,个位的数分离出来,具体的办法已在代码中给出。

#编写一个程序,求 100~999 之间的所有水仙花数。
#如果一个 3 位数等于其各位数字的立方和,则称这个数为水仙花数。例如:153 = 1^3 + 5^3 + 3^3,因此 153 就是一个水仙花数。
def funcation():
    result=0                    #初始化结果变量
    for i in range(100,1000):   #由于
        a=int(i/100)            #百位 百位自行理解即可
        b=int((i%100)/10)       #十位 取法思想:先取两位数,然后再取整,即得到十位上的数
        c=int(i%10)             #个位 取法思想:直接除以10进行取余操作,即可得个位上的数
        if i==power(a,3)+power(b,3)+power(c,3):#循环查找符合水仙花数条件的数
            result=result+1
            print(result,i)
def power(num,pow):#求一个数的N次方
    global num1
    num1=1
    for each in range(pow):
        num1=num*num1
    return num1
funcation()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值