双倍超立方数,双倍,双倍超立方数 是指一个正


双倍超立方数 是指一个正整数可以正好被拆分为两种不同的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 timet=time()n = 10**6cubes = [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__()/2print time()-t#该片段来自于http://byrx.net

评论关闭