数学知识 乘法逆元

若\(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;
}
上一篇:扩展欧几里得算法


下一篇:BZOJ 1441: Min exgcd