.. oder es vielleicht mal hiermit probieren.
Delphi-Quellcode:
function expmod(b,x,m : integer) : integer;
var
quad,halb,erg : Integer;
{
Berechnet die diskrete Exponentialfunktion b hoch x modulo m
unter ausschließlicher Verwendung der Operationen Quadrieren
und Multiplizieren. Der Rest wird nach jeder Operation bestimmt,
um große Zwischenergebnisse zu vermeiden
mod bezeichnet die Modulo-Operation
div bezeichnet die ganzzahlige Division
}
begin
Quad := b;
Halb := x;
Erg := 1;
while Halb > 0 do
begin
if Halb mod 2 > 0 then
Erg := (Erg * Quad) mod m;
Quad := (Quad * Quad) mod m;
Halb := Halb div 2;
end;
result := Erg
end;
Grüße
Klaus