Laël Cellier on Sun, 19 Jan 2025 20:52:54 +0100


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: What’s the equivalent of Mathematica’s Solve[] Function in Pari/Gp ?


Hi,

and what would be the code to solve
a×x + sqrt(b×y²) = c in {x,y} integers

instead ? The aim is to have b×y being a perfect square and if possible have a value lower than a…
Cordialement,

Le 12/01/2025 à 11:58, Karim Belabas a écrit :
Hi Laël,

   Bill's question was about the algorithm used, not the result.

To solve a*x + b*y = c in {x,y} integers (given a,b,c integers) in GP:

Solve(a,b,c) =
{ my([u, v, d] = gcdext(a, b));

   if (c % d, return ([]));  \\ no solution
   my(x = c/d * u % (b/d));
   [x, (c - a*x) / b];
}

? Solve(300001,4139891237,5)
%1 = [1952821586, -141513]
? 1952821586 * 300001 - 141513*4139891237
%2 = 5

Cheers,

     K.B.