我们可以将xn分解成((x2)2)2……
其中要做k次平方运算,于是我们可以将n用k来表示
n=2k1+2k2+2k3……
xn=x2k1x2k2x2k3
所以我们只要在依次求x2i的同时进行计算就好了
时间复杂度为O(logn)
1 while(k>0) 2 { 3 if(k&1)ys=ys*a%n; 4 a=a*a%n; 5 k/=2; 6 }
快速幂
原文:http://www.cnblogs.com/wls001/p/5157107.html