【Python練習題 009】 打印出所有的“水仙花數”,所謂“水仙花數”是指一個三位數,其各位數字立方和等於該數本身。例如:153是一個“水仙花數”,因為153=1的三次方+5的三次方+3的三次方。
----------------------------------------------------------------------
這題也是送分題,只要能把任意三位數的百位、十位、個位拆解出來就好辦了。思路:將任意3位數除以100再向下取整,即可得到百位數。將這個3位數減去(百位數*100),即可去掉百位數,然后除以10再向下取整,即可得到十位數。將這個3位數除以10再取整再乘以10(得到整幾百幾十的數字),然后拿這個3位數減去這個數字,即可得到個位數。代碼如下:
import math
for i in range(100, 1000):
x = math.floor(i/100) #獲得百位數
y = math.floor((i - x*100)/10) #獲得十位數
z = i - math.floor(i/10) *10 #獲得個位數
if i == x**3 + y**3 + z**3:
print(i, end=', ')
輸出結果如下:
153, 370, 371, 407
++++++++++++++++++++++++++++++++++++++
