procedure PowMod(var R:TBigInt; A,B,C:TBigInt); { R = A^B mod C } var E, T: TBigInt; I: Integer; begin Init(R,1); for I := 0 to Bites(B)-1 do begin if IsBit(B,I) then begin Mul(E, R, A); DivMod(E, C, T); R := E; end; Mul(E, A, A); DivMod(E, C, T); A := E; end; end;