求解n关于m的逆元( n*x = 1 mod m );
int exgcd(int a,int b,int &x,int &y)
{
if(b==0) {
x=1,y=0;
return a;
}
int r = exgcd(b,a%b,x,y);
int t = x;
x = y;
y = t - a/b*y;
return r;
}
int inv(int n,int m)
{
int x,y;
int ans = exgcd(n,m,x,y);
if(ans == 1)
return (x%m+m)%m;
//定义:正整数 a, n,如果有 ax ≡ 1(mod n),则称 x 的最小整数解为 a 模 n的逆元。
else
return -1;
}