打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153 是一个"水仙花数",因为 \(153 = 1^3 + 5^3 + 3^3\)
利用 for 循环控制 100-999 个数,每个数分解出个位,十位,百位。
from functools import reduce for n in range(100, 1000): if reduce(lambda x, y: x+y, map(lambda z: int(z) ** 3, str(n))) == n: print(n)