Delphi-Quellcode:
Function XHochYModZ(x, y, z: integer): Integer;
Var
i, e: INteger;
Begin
e := 1;
For i := 1 To y Do
e := (e * x) Mod z;
result := e;
End;
Das ist defakto inpraktikabel und ineffizient. Wir führen damit Y mal eine modulare Multiplikation aus. Und stelle dir vor Y wäre wie bei RSA üblich circa 2^1024 groß.
Der Vorschlag von 3_of_8 ist da schon weitaus besser. Dieser führt im Durchschnitt Ln2(Y) mal eine modulare Multiplikation und Ln(Y)/2 eine Quadrierung durch wenn man nicht wie sein Vorschlag die Rechts nach Links Methode sondern die Links nach Rechts Methode anwendet. Ich kenne das aber und einen anderen Namen -> "Left to Right/Right to left binary Exponentation" also einfach gesagt eine binäre Exponentation.
Ich hatte hier vor langer Zeit schonmal einen Source für Int64 reingestellt,
http://www.delphipraxis.net/internal...+exponentation
Gruß Hagen