水仙花數:一個三位數,其按位立方之和等於該數本身,該數稱為水仙花數。求出100- 1000之間的水仙花數
(其實,水仙花數是“自冪數”中的一種;自冪數:一個n位數,其按位數字的n次方之和,等於該數本身。
#第一種方法
list1 = []
for i in range(100,1000):
a = i%10 # 個位
b = i%100//10 #十位
c = i//100 # 百位
d = a ** 3 + b ** 3 + c ** 3
if d == i:
list1.append(d)
print('1000以內的水仙花數有:', list1)
# 輸出的結果為 1000以內的水仙花數有: [153, 370, 371, 407]
# 第二種方法
i = 2
while i < 1000:
a = i % 10
b = i % 100 // 10
c = i // 100
if a ** 3 + b ** 3 + c ** 3 == i:
print(i)
i += 1