拓展欧几里得算法:
a/b%mod=a*inv(b)%mod
static long x,y;
static void exgcd(long a,long p){
if(p==0){
x=1;
y=0;
return;
}
exgcd(p,a%p);
long k=x;
x=y;
y=k-a/p*y;
}
//最终所求逆元存储在x里
快速幂+费马小定理求逆元
a/b%mod=a*(b^(mod-2))%mod
当mod是素数且b与mod互质时成立
static long quick_mod(long a,long b,long mod){
long res=1;
for(;b>0;b>>=1){
if((b&1)!=0){
res=res*a%mod;
}
a=a*a%mod;
}
return res;
}