快速幂
function f(a,b,n):longint;
var
t,y:longint;
begin
t=1;y=a;
while b<>0 do
begin
if (b and 1)=1 then t:=t*y mod n;
y:=y*y mod n;
b:=b shr 1;
end;
exit(t);
end;
原理:把b转换成2进制数
该2进制数第i位的权为a^2^(i-1)
例如
a^11=a^(2^0+2^1+2^3)