# 水仙花数 # 水仙花数是指一个n位数(n>=3),它的每个位上的数字的n次幂之和等于它本身 # 例如:153=1**3+5**3+3**5 # 求出1000以内所有的水仙花数
i = 100
# n位数,n>=3
#1. 首先写出1000以内的三位数
while i < 1000:
# print(i)
# i += 1 自增条件写在print上面则会循环到1000.如果自增条件在print下面则只会到999.
#2. 表达出它的个,十,百位
# 这个地方注意:需要用到的是整除“//”,
# 与Java不同的是它没有定义数据类型,就无法将所得数直接取整
bai = i // 100
shi = i // 10 % 10
ge = i % 10
#3. 判断是否位水仙花数:
if i == ge * ge * ge + shi * shi * shi + bai * bai * bai:
print(i, '=', bai, '^3+', shi, '^3+', ge, '^3')
i += 1#自增条件
运行结果如下: