水仙花数是指一个 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以内的水仙花数