# Solving an identity

I am trying to solve this identity using Mathematica:

$$3 \sqrt{5 \sqrt{37}-16}=\sqrt{a}-\sqrt{b}-c$$

I know that a, b and c are positive integers. I want to find what a, b and c are. I tried

FindInstance[{a >= 1, b >= 1, c >= 1,
3*Sqrt[5*(37)^(1/3) - 16] == (a^(1/3) - b^(1/3) -  c)}, {a, b, c}, Integers]


That did not work. I tried a few more approaches using FindInstance but with no luck.

Did I miss something or am I using the wrong function?

The answer is a = 1369, b = 296 and c = 2.

• does the equality return true if you plug in the known solution? – george2079 Feb 19 '14 at 14:12
• Narrowing the Domain it finds the solution FindInstance[ 3 Sqrt[5*37^(1/3) - 16] == a^(1/3) - b^(1/3) - c && 1300 < a < 1400 && 200 < b < 300 && c == 2, {a, b, c}, Integers, 1] but if c>=1 the kernel crashes! – tchronis Feb 19 '14 at 14:16
• @george yes, if you wrap FullSimplify around it. – bobbym Feb 19 '14 at 14:19
• @tchronis wished I had prior knowledge of where a solution might be but I did not. – bobbym Feb 19 '14 at 14:25
• @bobbym I agree , I just was surprised about the kernel crash (I have Mathematica 9.0). I am not sure if FindInstance uses any clever algorithms in the case of integers - especially in nonlinear Diophantine equations. – tchronis Feb 19 '14 at 14:36

I would propose the following unorthodox approach for this specific :

Since c>=1 obviously a>b

Catch@Do[
c = N[a^(1/3) - b^(1/3) - 3 Sqrt[5*37^(1/3) - 16]];
If[c == IntegerPart[c], Throw[{a, b, IntegerPart[c]}]]
, {a, 1, 2000}, {b, 1, a - 1}] // AbsoluteTiming


returns {88.341053, {1369, 296, 2}} in my machine

Just to be sure a further check must be made to verify that this is indeed the solution (due to precision issues)

Approach using fragments from Algebraic Number Theory

(a^(1/3) - b^(1/3) - c)^2 == 9 (5*37^(1/3) - 16) == -144 + 45*37^(1/3)


37 is a prime number so a^(1/3) and b^(1/3) belong to Z[37^(1/3)].

a=A 37^(2/3) and b=B 37^(1/3) for reasons I won't expand here.

Instead we have to solve the following

  (A*37^(2/3) - B*37^(1/3) - c)^2 == 9 (5*37^(1/3) - 16)
37 37^(1/3) A^2 - 74 A B + 37^(2/3) B^2 - 2 37^(2/3) A c +
2 37^(1/3) B c + c^2 == -144 + 45 37^(1/3)


Thus B^2 == 2 A c , -74 A B + c^2 == -144 and 37*A^2+2*B*c == 45

Reduce[B^2 == 2 A c && -74 A B + c^2 == -144 && 37*A^2 + 2*B*c == 45
, {A, B, c}, Integers]


outputs

(A == -1 && B == -2 && c == -2) || (A == 1 && B == 2 && c == 2)

• You can get slightly better bounds for your iteration by looking at the results of Reduce[3 Sqrt[5*37^(1/3) - 16] == a^(1/3) - b^(1/3) - c && a > 0 && b > 0 && c > 0, {a, b, c}, Integers] – Dr. belisarius Feb 19 '14 at 15:42
• @belisarius very interesting! So a>=15 and b is smaller than this sum of roots. Applying N I get a polynomial dependent by a. Maybe in larger search spaces (domains) this will help a lot! – tchronis Feb 19 '14 at 15:53
• Well,not much, really. bMax tends to a as a increases, so the gain is worth only when a is relatively small ;( – Dr. belisarius Feb 19 '14 at 15:56
• I notice that 1369^(1/3)==37^(2/3) and 296^(1/3)==2*37^(1/3) so a solution through Algebraic Number Theory would be appropriate. – tchronis Feb 19 '14 at 16:06