什么是水仙花数,比如一个三位数,它的个位的立方加上十位的立方再加上百位的立方等于这个数本身的话,此数叫作水仙花数.如:某三位数abc,如果满足a^3+b^3+c^3=abc,则abc是水仙花数。
超短四行:
for j in range(100, 1000):
cc = ((j // 100) ** 3 + (j % 100 // 10) ** 3 + (j % 10) ** 3)
if cc == j:
print(cc, end=" ")
运行结果:
153 370 371 407
注释版:
# 筛选范围100~999,但是for语句取不到最后一个数,所以设为1000
for j in range(100, 1000):
# 取得百位上的数值,算出该数值的3次幂
int1 = (j // 100) ** 3
# 取得十位上的数值,算出该数值的3次幂
int2 = (j % 100 // 10) ** 3
# 取得个位上的数值,算出该数值的3次幂
int3 = (j % 10) ** 3
# 将所有值加在一起
cc = int1 + int2 + int3
# 进行比较输出水仙花数
if cc == j:
print(cc, end=" ")
运行结果:
153 370 371 407