- A+
所属分类:Python习题
要求:
水仙花是指:abc = a**3 +b**3 +c**3,如:153 = 1**3 +5**3 +3**3
代码:
- for i in range(100,999):
- a=i//100
- b=(i%100)//10
- c=i%10
- if i==a**3+b**3+c**3:
- print(i)
- for i in range(1,10):
- for j in range(0,10):
- for k in range(0,10):
- if i*100+j*10+k==i*i*i+j*j*j+k*k*k:
- print(i*100+j*10+k)
- for i in range(100, 1000):
- sum = 0
- temp = i
- while temp:
- sum = sum + (temp%10) ** 3
- temp //= 10 # 注意这里要使用地板除哦~
- if sum == i:
- print(i)
- for i in range(100,999):
- x = int(str(i)[0])
- y = int(str(i)[1])
- z = int(str(i)[2])
- if i==(x**3 + y**3 +z **3):
- print(i)
2017/03/06 新增递归函数,来自python交流群(528770819)>>>print
- def tt(temp):
- global sum
- if temp:
- sum=sum+(temp%10)**3
- return tt(temp//10)
- else:
- return sum
- for i in range(100,1000):
- sum =0
- temp = i
- if tt(temp)==i:
- print (i)
2017/03/20 新增函数调用
- def Narcissus():
- for each in range(100,1000):
- temp = each
- sum = 0
- while temp:
- sum = sum +(temp%10) **3
- temp =temp // 10
- if sum == each:
- print(each,end='\t')
- print('所有的水仙花数分别是:',end='')
- Narcissus()