python基础----求水仙花数


水仙花数,即一个三位数,各个位上的数字的三次方相加,等于该数本身。
如: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)

猜你喜欢

转载自www.cnblogs.com/jeffrey04118110/p/11828884.html