1. 程式人生 > 實用技巧 >python列印水仙花數(基礎版)

python列印水仙花數(基礎版)

水仙花數是指一個 n 位數(n≥3 ),它的每個位上的數字的 n 次冪之和等於它本身。
例如:153是一個"水仙花數",因為153=1的三次方+5的三次方+3的三次方。
利用for迴圈輸出1000以內得水仙花數。
(進階版見:https://www.cnblogs.com/ttj57/p/13576692.html)
"""
i=t=100#初始化i,t的值為100
list1=[]#定義列表list1裝載1000以內的n位數(n≥3 )
list2=[]#定義列表list2裝載1000以內的水仙花數
#遍歷[100,1000]的數
while i <=1000:
list1.append(i)#將遍歷的數新增到list1中
i+=1
#遍歷list1中的數
for t in list1:
    #判斷為數字為3位數還是4位數
if t < 1000:
g=t%10#輸出個位數
b=t//100#輸出三位數中的百位數
s=(t//10)%10#輸出十位數
if t == (g**3+s**3+b**3):#判斷每個位上的數字的 n 次冪之和是否等於它本身
list2.append(t)#滿足水仙花數條件,輸出到list2中
elif t == 1000 :
g = t % 10#輸出個位數
q=t//1000#輸出四位數千位數
b=(t//100)%10#輸出三位數中的百位數
s=(t//10)%10#輸出十位數
if t == (g**3+s**3+b**3+q**3):
list2.append(t)
print(list2)#輸出1000以內的水仙花數