ich hab das problem, dass die funktion
Code: Alles auswählen
function m (n :int64) :int64;
var
r,q,p: int64;
begin
q := 2;
p := (q**(n-1));
r:= p mod n;
Result := r;
end;
Gibt es da auch eineandere Lösung??
Code: Alles auswählen
function m (n :int64) :int64;
var
r,q,p: int64;
begin
q := 2;
p := (q**(n-1));
r:= p mod n;
Result := r;
end;
Code: Alles auswählen
function m(n: int64): int64;
var
q,r,n1: int64;
begin
r := 1;
q := 2;
n1 := n-1;
while n1>0 do begin
if odd(n1) then r := r*q mod n;
n1 := n1 shr 1;
q := sqr(q) mod n;
end;
m := r;
end;