题意
求a关于m的乘法逆元
分析
a x ≡ 1 (mod m) 等价于 ax my=1
求x的最小正数(不能是0,我就WA在这里了)。
gcd(a,m)!=1 时x不存在。
所以用扩展gcd就可以求了。
代码
代码语言:javascript复制#include<cstdio>
#define ll long long
ll exgcd(ll a,ll b,ll &x,ll &y)
{
if(b==0)
{
x=1;
y=0;
return a;
}
ll r=exgcd(b,a%b,y,x);
y-=a/b*x;
return r;
}
int main()
{
ll t,a,m,x,y;
scanf("%lld",&t);
while(t--)
{
scanf("%lld%lld",&a,&m);
int ok=exgcd(a,m,x,y);
if(ok==1)
{
x=(x%m m)%m;
if(x==0)x=m;
printf("%lldn",x);
}
else
{
printf("Not Existn");
}
}
return 0;
}