zluxingzhe 2019-11-10
水仙花数,即一个三位数,各个位上的数字的三次方相加,等于该数本身。
如:153 = 1**3 + 5 ** 3 + 3 ** 3
def is_narc_num(n): # if n <100 or n > 999: # return False # n = str(n) # if int(n[0])**3 + int(n[1])**3 + int(n[2]) ** 3 == int(n): # return True # else: # return False """ 判断任意一个数字,是否水仙花数(不管是几位数) :param n: :return: """ n = str(n) length = len(n) sum = 0 for i in range(length): sum += int(n[i])**3 if sum == int(n): return True return False def list_narc_num(start,end): list_narc = [] for i in range(start,end+1): if is_narc_num(i): list_narc.append(i) return list_narc narc_num = list_narc_num(1,50000) print(narc_num)