转自同名微信公众号。
自幂数是指一个 n 位数,它的每个位上的数字的n 次幂之和等于它本身。比如 153 = 1**3 + 5**3 + 3**3,是一个3位数的自幂数,也称水仙花数。
求所有的水仙花数。
求水仙花的循环逻辑很简单,range(100,1000),即从100到999。
但如何获取个位,十位,百位上的数字则需要灵活应用之前的知识。
个位:n%10,即数字除以10的余数。
十位:int(n/10)%10,即数字除以10的整数部分,再除以10的余数。
百位:int(n/100),即数字除以100的整数部分。
for n in range(100,1000):
i = int(n/100)
j = int(n/10)%10
k = n % 10
if n == i ** 3 + j ** 3 + k ** 3:
print(n)
<< · Back Index ·>>
上一篇
下一篇