""" find taxi-cab numbers which can be expressed as sum of cubes exactly two ways """
from collections import defaultdict
n = 1000000
qubes = [y**3 for y in range(int(n**(1/3))+1)]
ramanujan = defaultdict(int)
for ind, a in enumerate(qubes):
            for b in qubes[ind:]:
                if a + b > n: break
                ramanujan[a+b] += 1
              
print(sorted(n for n in ramanujan if ramanujan[n] == 2))

Specialties:
IT/Science/Contracts/Religious translation/interpreting FIN-ENG-FIN
Python programming

1
Contributor
1
Reply
4
Views
5 Years
Discussion Span
Last Post by pyTony
0

In Python2 you must use for example 1./3 at line 4 or do

from __future__ import division

Edited by pyTony: n/a

Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.