求1000以内所有的水仙花数
水仙花数指的是一个n位数(n>=3)它的每个位数上的数字的n次幂之和等于它本身。
(分析假设:1 ** 3 + 5 ** 3 + 3 ** 3 = 153)
#获取1000以内所有的三位数
i = 100
while i < 1000:
# 假设 i的百位数是a、十位数是b 、个位数是c
#先求出百位数
a = i // 100
#求十位数
# b = i // 10 % 10
b = (i - a * 100) // 10
#求个位数
c = i % 10
#print(i,a,b,c)
#判断i否是水仙花数
if a**3 + b**3 + c**3 == i:
print(i)
i +=1
执行结果:
153
370
371
407