Create a function

```python
has_two_cube_sums(n)
```

which checks if a given number `n` can be written as the sum of two cubes in two different ways: `n = a³+b³ = c³+d³`.
All the numbers `a`, `b`, `c` and `d` should be different and greater than `0`.

E.g. 1729 = 9³+10³ = 1³+12³.

```python
has_two_cube_sums(1729); // true
has_two_cube_sums(42);   // false
```

Difficulty: introductory

Starter code:

def has_two_cube_sums(n):
	

Solutions:
def has_two_cube_sums(n):
    cubic_list = [i**3 for i in range(1, int((n)**(1./3.)) + 1)]
    return sum([(n != 2*c) and ((n-c) in cubic_list) for c in cubic_list]) > 3


def has_two_cube_sums(n):
    x = 0
    for a in range(int(n**0.35)):
        for b in range(a,int(n**0.35)):
            if a**3+b**3 == n:
                x += 1
            if x > 1:
                return True
    return False


from itertools import combinations

s = {a**3 + b**3 for a, b in combinations(range(1, 1000), 2)}
s.discard(19**3 + 34**3)  # bug

def has_two_cube_sums(n):
    return n in s

def has_two_cube_sums(n):
    if n == 1: return False
    
    high = int((n)**(1/3.0))
    low  = int((n/2)**(1/3.0))
    return sum( abs(y-round(y)) < 1e-8 for y in [((n-x**3))**(1/3.0) for x in range(low,high+1)]) >= 2

def has_two_cube_sums(n):
    return len([[y,z] for y in range(1, int(n**(1/3))+1) for z in [x for x in range(1, int(n**(1/3))+1)] if y!=z and y**3+z**3==n])>=4

has_two_cube_sums=lambda n:sum([(i[0]**3)+(i[1] ** 3)==n for i in __import__("itertools").permutations(range(1,int(n**(1./3.))+1),2)])>=4