Python实现双倍超立方数


Python #双倍超立方数2012-11-25 22:30
双倍超立方数 是指一个正整数可以正好被拆分为两种不同的a^3+b^3的方式,其中a,b均为整数且0<a<=b。对于任何一个指定的 int n, 返回所有的小于等于n的双倍超立方数的个数 。 
例如:
1^3 + 12^3 = 1729
9^3 + 10^3 = 1729
2^3 + 16^3 = 4104
9^3 + 15^3 = 4104

......

代码如下:

from time import time

t=time()
n = 10**6
cubes = [i**3  for i in xrange( int(n**(1.0/3))+1 )]
sums =[i+j for i in cubes for j in cubes if i <= j]
print [i for i in sums if sums.count(i)==2].__len__()/2
print time()-t


相关文章

粤ICP备11097351号-1