function f(a,b,n:int64):int64;
var t,y:int64;
begin
t:=1;
y:=a;
while b<>0dobeginif(b and1)=1then t:=t*y mod n;
y:=y*y mod n;{这里用了一个很强大的技巧,y*y即求出了a^(2^(i-1))不知道这是什么的看原理}
b:=b shr 1;{去掉已经处理过的一位}end;
exit(t);
end;
posted on
2015-08-17 17:55川汉唐
阅读(168)
评论(0)
编辑收藏举报