代码
long long slow_mul(long long x, long long y, long long mod)
{
long long ans = 0;
while(y)
{
if(y & 1)
ans = ans + x % mod;
x = (x + x) % mod;
y >>= 1;
}
return ans;
}
long long quick_pow(long long x, long long y, long long mod)
{
long long sum = 1;
while(y)
{
if(y & 1)
sum = slow_mul(sum, x, mod) % mod;
x = slow_mul(x, x, mod) % mod;
y = y >> 1;
}
return sum;
}
参考来源
https://blog.csdn.net/Cyan_rose/article/details/83065026