How to find two rational numbers $x,y$ such that $$x^3+y^3=6$$ I know that $x=17/21,y=37/21$ is a solution but I am interested in a method how is achieved and does exists other solutions

  • 8
    $\begingroup$ That equation defines an elliptic curve. The problem of finding all rational points on an elliptic curve can be solved for many a curve (or class of curves), but the math is very non-trivial in general. There may be only finitely many solutions, or the solutions can all be generated via the secant-tangent method starting from a carefully chosen set of solutions. $\endgroup$ – Jyrki Lahtonen Jan 27 '13 at 10:52
  • 2
    $\begingroup$ Finding a rational solution of $x^3+y^3=6$ was set as a puzzle by Dudeney in Amusements in Mathematics, about $100$ years ago. I'm sure his method was educated trial-and-error. Once you have found one solution, you can often find others, but the denominators tend to grow very fast. The line tangent to the graph of $x^3+y^3=6$ at $(17/21,37/21)$ hits the curve at a point which will have rational coordinates. $\endgroup$ – Gerry Myerson Jan 27 '13 at 11:36
  • 2
    $\begingroup$ Magma says this curve has a minimal model $y^2 = x^3-243$ and is rank 1, in case others are interested. I am not familiar with Magma so I don't know what the explicit isomorphism between these curves is. $\endgroup$ – user27126 Jan 27 '13 at 11:45
  • 4
    $\begingroup$ This is relevant. $\endgroup$ – P.. Jan 27 '13 at 12:51
  • 2
    $\begingroup$ @GerryMyerson By the way, that solution that you described is: $$ (x,y) = \left(\frac{-1805723}{960540},\frac{2237723}{960540}\right) $$ $\endgroup$ – Rustyn Jan 27 '13 at 19:44

Solutions $z$ of the diophantine equation $x^3 + y^3 = 6z^3$ are tabulated at the Online Encyclopedia of Integer Sequences. Only $4$ are given (though infinitely many exist): $21$, $960540$, $16418498901144294337512360$, and $436066841882071117095002459324085167366543342937477344818646196279385$ $305441506861017701946929489111120$.

See also this mathforum post, and the article, The £$450$ question, by J. H. E. Cohn, Mathematics Magazine 73, No. 3 (Jun., 2000) 220-226.

EDIT: Indeed, Cohn gives a solution not in the OEIS, and smaller than that last solution: $$z=1097408669115641639274297227729214734500292503382977739220$$ It's a very nice paper.

  • $\begingroup$ I find that an easy way to write special characters is to copy them from unicodeforyou.appspot.com, e.g. pound. $\endgroup$ – Rahul Jan 29 '13 at 0:03
  • $\begingroup$ If you want to generate more, they give you the maple code @ that link also. but by 7th or so $z$, we are up to 10's of thousands of digits. $\endgroup$ – Rustyn Jan 29 '13 at 1:17

Using the maple syntax from this site,
I have here $6$ $z$ such that: $$ x^3 + y^3 =6z^3 $$ I have excluded the other $z$'s for the $7^{\text{th}}$ is nearly $30,000$ digits long.


  • $\begingroup$ The "really cool solution" comes from the 4th solution in the oeis list given in my answer. $\endgroup$ – Gerry Myerson Jan 29 '13 at 2:41

I have used Microsoft Solver Foundation to find a (different) solution:

SolverContext context = SolverContext.GetContext();

Decision a = new Decision(Domain.IntegerNonnegative, "A");
Decision b = new Decision(Domain.IntegerNonnegative, "B");
Decision c = new Decision(Domain.IntegerNonnegative, "C");
Decision d = new Decision(Domain.IntegerNonnegative, "D");

Model model = context.CreateModel();
model.AddDecisions(a, b, c, d);

Term a3 = a * a * a;
Term b3 = b * b * b;
Term c3 = c * c * c;
Term d3 = d * d * d;

Term res = a3 * d3 + c3 * b3 - 6 * b3 * d3;

model.AddConstraint("eq", res == 0);
model.AddConstraint("a1", a < 1000000);
model.AddConstraint("b1", b < 1000000);
model.AddConstraint("c1", c < 1000000);
model.AddConstraint("d1", d < 1000000);
model.AddConstraint("a2", a >= 1);
model.AddConstraint("b2", b >= 1);
model.AddConstraint("c2", c >= 1);
model.AddConstraint("d2", d >= 1);
// model.AddConstraint("a3", a > c);  //  symmetry breaking

model.AddConstraint("b3", b != 21);   //  want something different!

Solution solution = context.Solve();

Console.WriteLine("a={0} b={1} c={2} d={3}", a, b, c, d);

The solver re-discovers your solution in a couple of seconds but is unable to find a different one with numbers below 1000000.

  • 1
    $\begingroup$ Try running it to $3,000,000$ to see whether it finds the solution in the comment by @Rustyn. $\endgroup$ – Gerry Myerson Jan 28 '13 at 23:06
  • $\begingroup$ 3,000,000 does not work in the MSF solver. This might be caused by the fact that 3,000,000^3 requires a number representation above 64 bits. $\endgroup$ – Axel Kemper Jan 28 '13 at 23:12

This is an old question, but anyway. Given an initial solution $x,y,z$, to,

$$ax^3+by^3 = cz^3$$

then a new one can be derived as,

$$a(-bxy^3-cxz^3)^3 + b(ax^3y+cyz^3)^3 = c(-ax^3z+by^3z)^3\tag{0}$$

For example, given the OP's,

$$x^3+y^3 = 6z^3$$

starting with initial,

$$x,y,z = 17, 37, 21\tag{1}$$

using $(0)$, we find a second,

$$x,y,z = -1805723,\, 2237723,\, 960540\tag{2}$$

which is the point given by Myerson and Yazdanpour. Using $(2)$, we can find a third and so on, ad infinitum.

P.S. 1. Presumably, a positive $x,y,z$ will appear after every few iterations. 2. For some reason, the solution given by Kohn is skipped by this process.


Note the danger that most solutions found by the Julia program will reduce to 17/21 and 37/21 for a and b or the reverse. However If this program uses BigInt for the integers it will find another unique solution in a week to two. You also can test and skip any a/c that reduces to 17/21 with the test

    if a//c == 17/21; continue; end 

before the print statement and declare a,b,c BigInt and increase the range of c by another decade.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.