Hallo,
ich habe jetzt den Code implementiert:
Delphi-Quellcode:
function tform1.mod_exp(basis,exponent,modulo:integer):int64;
var e:Integer;
begin
e:=1;
while (exponent>0) do begin
if (exponent mod 2 > 0) then e:=(e*basis) mod modulo;
basis:=(basis*basis) mod modulo;
exponent:=exponent div 2;
end;
result:=e;
end;
Bei Größeren Zahlen kommt aber mist raus z.B.
666^58613 mod 81079=-38808
Rauskommen müsste aber: 49371.
Woran kann das liegen? Mit kleineren Zahlen gehts 1a!