寻找水仙花数
寻找水仙花数 (模块:numEx,所在文件名 num_hw.py,Level:★)
水仙花数(Narcissistic number)是指一个 3 位数,它的每个位上的数字的 3 次幂之和
等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。本题要求寻找所有的水仙花数。
函数原型:def narcissistic_number()
返回值: 返回一个 list,包含了所寻找到的全部水仙花数的数值,要求这些数从小到大
排列。每一个数都应当为整形,如[153, 370, 371]。
代码如下(函数代码方便引用)
# 水仙花数
def narcissistic_number():
for i in range(1000):
result = []
for num1 in range(0, 10):
pow1 = pow(num1, 3)
for num2 in range(num1, 10):
pow2 = pow(num2, 3)
for num3 in range(num1, 10):
pow3 = pow(num3, 3)
add = pow1 + pow2 + pow3
if add in result:
continue
if len(str(add)) == 3:
add_list = list(str(add))
is_narc = True
for numx in (num1, num2, num3):
if str(numx) in add_list: # 注意str(num)
add_list.remove(str(numx)) # 注意str(num)
else:
is_narc = False
break
if is_narc == True:
result.append(add)
result.sort()
return result