python 求任意範圍內水仙花數

代碼:

#水仙花數
num=int(input('請輸入任意範圍,將會得到其範圍內的所有水仙花數:'))
for i in range(1,num+1):
    cifang = len(str(i))            #這個數的位數,即爲次方數
    total = 0                       #各位數N次方之和
    j = i                           #因爲後面i會用做比較,所以我不更改i的值
    last_w = 0                      #這個數的最後一位數
    while j > 0 and cifang > 2:
        last_w = j % 10             #對10求餘,表示這個數的最後一個數
        j = j // 10                 #去掉最後一位數
        total += last_w ** cifang   #計算各位的N次方之和
    if total == i:                  #如果各位數的N次方之後與原數i相等,就打印
        print(i)

運行結果:

python 求任意範圍內水仙花數

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章