Data update
This commit is contained in:
parent
72eb4943cb
commit
4d5544505c
2347 changed files with 62432 additions and 16731 deletions
31
Task/Pells-equation/PascalABC.NET/pells-equation.pas
Normal file
31
Task/Pells-equation/PascalABC.NET/pells-equation.pas
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
function solvePell(n: integer): (biginteger, biginteger);
|
||||
begin
|
||||
var x: biginteger := n.sqrt.floor;
|
||||
var (y, z, r) := (x, 1bi, x shl 1);
|
||||
var (e1, e2) := (1bi, 0bi);
|
||||
var (f1, f2) := (0bi, 1bi);
|
||||
|
||||
repeat
|
||||
y := r * z - y;
|
||||
z := (n - y * y) div z;
|
||||
r := (x + y) div z;
|
||||
|
||||
(e1, e2) := (e2, e1 + e2 * r);
|
||||
(f1, f2) := (f2, f1 + f2 * r);
|
||||
|
||||
var (a, b) := (f2 * x + e2, f2);
|
||||
if a * a - n * b * b = 1 then
|
||||
begin
|
||||
result := (a, b);
|
||||
exit
|
||||
end;
|
||||
until false;
|
||||
end;
|
||||
|
||||
begin
|
||||
foreach var n in |61, 109, 181, 277| do
|
||||
begin
|
||||
var (x, y) := solvePell(n);
|
||||
writeln('x² - ', n:3, ' * y² = 1 for (x, y) = (', x:21, ',',y:20, ')');
|
||||
end;
|
||||
end.
|
||||
Loading…
Add table
Add a link
Reference in a new issue