编写函数is_narcissistic,该函数接收一个整数,判断其是否为水仙花数。如果是水仙花数,返回True,反之返回False。函数编写完成后,调用该函数打印所有的水仙花数。
def is_narcissistic(n):
a=n%10
b=n//10%10
c=n//100
return a**3+b**3+c**3==n
for i in range(100,1000):
if is_narcissistic(i):
print(i,end=' ')
水仙花数一般指三位数的:
方法一:
def is_narcissistic(n):
if not 99<n<1000:
return False
a,b,c = n//100, (n//10)%10, n%10
return n==a**3+b**3+c**3
for i in range(100,1000):
if is_narcissistic(i):
print(i)
方法二: 可以算出任意位数的水仙花数:
def is_narcissistic(n):
i, j = 0, n
while j:
k = j%10
i += k**len(str(n))
j //= 10
return n==i+j
for i in range(100,100000):
if is_narcissistic(i):
print(i)
三位水仙花数是立方和,四位的是四次方和,以此类推
方法二的100~100000间的水仙花数有:
153
370
371
407
1634
8208
9474
54748
92727
93084