#include <iostream>
using namespace std;
int gcd(int x,int y);//最大公约数函数
int ectgcd(int c,int d);//乘法逆元函数
int main()
{
int a,b,g;
cin>>a>>b;
if(gcd(a,b)!=1)
{
cout<<"两数之间不存在乘法逆元"<<endl;
}
else
{
g=ectgcd(a,b);
cout<<"乘法逆元是:"<<g;
}
return 0;
}
int gcd(int x,int y)
{
int m;
while(y!=0)
{
m=x%y;
x=y;
y=m;
}
return (x);
}
int ectgcd(int c,int d)
{
int r0,r1,y,s,t,s0,s1,t0,t1,q,r;
r0=d;
r1=c%d;
if(r1==1)
{
y=1;
}
else
{
s0=1;
s1=0;
t0=0;
t1=1;
while(r0%r1!=0)
{
q=r0/r1;
r=r0%r1;
r0=r1;
r1=r;
s=s0-q*s1;
s0=s1;
s1=s;
t=t0-q*t1;
t0=t1;
t1=t;
if(r==1)
{
if(t>0)
{
y=t;
}
else if(t<0)
{
y=t+d;
}
}
}
}
return y;
}