关于水仙花数问题——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 篇原创文章 · 获赞 6 · 访问量 882

猜你喜欢

转载自blog.csdn.net/WildSky_/article/details/103443836