目录
快速幂原理
乘法逆元
快速幂原理
把指数变成二进制数,可写出如下代码:
typedef long long ll;
ll qpow(ll a,ll b,ll mod)
{
a%=mod;
ll ans=1;
while(b)
{
if(b&1)ans=ans*a%mod;
a=a*a%mod;
b>>=1;
}
return ans;
}
注意一定要把底数变成它自己的平方。
乘法逆元
公式:a/b%p 等价于a*pow(b,p-2)%p;
条件:当且仅当gcd(b,p)=1时,b在模p下存在逆元。