代碼:
#水仙花數
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)