题目描述:原题链接
“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3。 现在要求输出所有在m和n范围内的水仙花数。
源代码@Python
1 [m,n]=map(int, raw_input().split()) 2 res = [] 3 table = [x**3 for x in range(0,10)] 4 5 for i in range(m,n+1): 6 x1 = i/100 7 d = i%100 8 x2 = d/10 9 x3 = d%10 10 if i==table[x1]+table[x2]+table[x3]: 11 res.append( str(i) ) 12 if len(res): 13 print(' '.join(res)) 14 else: 15 print 'no'
注:
- 幂运算表达式a**b表示底数为a,指数为b
- 为避免重复的执行幂运算,可先创建每个数字与它对应的三次方的表格table,通过查表获取