当模数p很大时,有溢出的风险,于是给出一个模板
详细解释
ll mul(ll a, ll b) //大数乘取余
{
ll ans=0;
while(b)
{
if (b&1) ans=(ans+a)%p;
a=(a+a)%p;
b=b>>1;
}
return ans;
}
ll fpow(ll base, ll n) //快速幂+大数乘取余
{
base%=p;
ll ans=1;
while(n)
{
if (n&1) ans=mul(ans,base)%p;
base=mul(base,base)%p;
n=n>>1;
}
return ans;
}