快速指数算法可以较快地计算.具体算法如下:
1、将k二进制展开
2、制表
3、乘积
证明
C语言实现
//快速指数算法
// a^k=b(mod m)
int FastExp(int a,int k,int m ){
int b=1;
while(k>=1){
if(k%2) b=(a*b)%m;
a=(a*a)%m;
k/=2;
}
return b;
}
(参考于《数论概论》)