求(ab)%p

利用位运算思想,将b转化为二进制,然后将每一位乘上对应的指数。具体见代码。

 1 int mi(int a,int b,int p)
 2 {
 3     int ans=1;
 4     a%=p;
 5     while(b)
 6     {
 7         if(b&1)ans=ans*a%p;
 8         b>>=1;
 9         a=a*a%p;
10     }
11     return ans;
12 }