若\(a*x\equiv1(mod \ b)\),a,b,互质则称x为a的逆元记为\(a^-1\)
根据逆元的定义,可转化为\(a*x+b*y=1\)
用扩展欧几里得算法求解,逆元可以用来在计算\((t/a)mod \ b\)
时转化为\(t*a^-1 \ mod \ b\)
\(a^-1\)
利用快速幂和扩展欧几里得算法求逆元
long long exgcd(long long a,long long b,long long &x,long long &y)
{
if(!b)
{
x=1;
y=0;
return a;
}
long long res=exgcd(b,a%b,x,y);
long long tmp=x;
x=y;
y=tmp-a/b*y;
return res;
}
long long exgcd_inv(long long a,long long n)
{
long long d,x,y;
d=exgcd(a,n,x,y);
return d==1?(x+n):-1;
}