水仙花数,即一个三位数,各个位上的数字的三次方相加,等于该数本身。
如:153 = 1**3 + 5 ** 3 + 3 ** 3
1 def is_narc_num(n): 2 # if n <100 or n > 999: 3 # return False 4 # n = str(n) 5 # if int(n[0])**3 + int(n[1])**3 + int(n[2]) ** 3 == int(n): 6 # return True 7 # else: 8 # return False 9 """ 10 判断任意一个数字,是否水仙花数(不管是几位数) 11 :param n: 12 :return: 13 """ 14 n = str(n) 15 length = len(n) 16 sum = 0 17 for i in range(length): 18 sum += int(n[i])**3 19 if sum == int(n): 20 return True 21 return False 22 23 def list_narc_num(start,end): 24 list_narc = [] 25 for i in range(start,end+1): 26 if is_narc_num(i): 27 list_narc.append(i) 28 return list_narc 29 30 narc_num = list_narc_num(1,50000) 31 print(narc_num)
原文地址:https://www.cnblogs.com/jeffrey04118110/p/11828884.html
时间: 2024-11-06 13:45:09