Speeding up a script -- looking for ideas
Martin Beckman
martin_beckman at yahoo.com
Sun Oct 20 11:00:17 EDT 2002
How about:
def foo(end, min_pairs=2):
cubes = [0]
i = 1
while i**3 < end:
cubes.append(i**3)
i = i + 1
table = {}
for j in range(1, len(cubes)):
for k in range(j, len(cubes)):
sum = cubes[j] + cubes[k]
if not table.has_key(sum):
table[sum] = []
table[sum].append((j, k))
for sum in table.keys():
if len(table[sum]) >= min_pairs:
print sum, table[sum]
Regarding the question of three pairs,
>>> foo(10000000,3)
>>> foo(100000000,3)
87539319 [(167, 436), (228, 423), (255, 414)]
martin
More information about the Python-list
mailing list