欧拉定理求逆元
当且仅当a和n互质,
费马小定理求逆元
如果p是素数且a与p互质,
ll pow(ll x,int y)
{
int b=1;
while(y)
{
if(y&1)
b=(b*x)%mod;
x=x*x%mod;
y>>=1;
}
return b;
}
mid=Pow(mid,mod-2);
求阶乘逆元
用费马小定理求最大阶乘的逆元,往回递推。
fact[0]=1;
for(int i=1;i<=n;i++)
{
fact[i]=fact[i-1]*i%mod;
}
inv[n]=pow(fact[n],mod-2);
for(int i=n-1;i>=0;i--)
{
inv[i]=inv[i+1]*(i+1)%mod;
}
求组合数逆元
C(n,m)=n!/(m!*(n-m)!)
扩展欧几里得求逆元
,即
,
,当且仅当gcd(a,n)=1,不定方程有解,此时x为a的逆元