水仙花数是三位数,且各位数字的立方之和等于该数,如 153 是水仙花数,因为 153=13+53+33。
本关任务就是判断给定的正整数 x 是否是水仙花数。
x = int(input())
########## Begin ##########
l=[int(xi) for xi in str(x)]
m=[i**3 for i in l]
s=sum(m)
if 99<x<1000 and s==x:
print(True)
else:
print(False)
########## End ##########
- 注意看公式,是立方而非平方。
- 注意x的取自范围,水仙花是三位数。
- if循环的范围要注意,是冒号后。最初设定 if>99,并不能过滤掉<100的数,因为后面的if是另外的循环,与前面的if无关。