求水仙花数,python

用python语言实现水仙花数

什么是水仙花数?
  • 所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

第一种,while循环

  • 程序分析:通过while循环列出1000以内所有三位数,然后通过取整数算出百位,减去百位,然后除以10化整减去个位算出十位,取余数算出个位,然后进行**3来验证是否水仙花数
i =100
while i<1000:

    num1 = i // 100  # 百位
    num2 = int((i-num1*100)/10) # 十位
    num3 = i%10 #个位
    # print(num2)

    if num3 **3 +num2**3 +num1**3 ==i:
        print(i)
    i += 1

结果:

153
370
371
407

第二种for in 循环遍历

  • 程序分析 利用for循环控制100-999个数,每个数分解出个位,十位,百位。
for i in range(100,1000):
    s=str(i)
    one=int(s[-1])
    ten=int(s[-2])
    hun=int(s[-3])
    if i == one**3+ten**3+hun**3:
        print(i)
153
370
371
407

你可能感兴趣的:(求水仙花数,python)