下面代码简单,初学
public int niyuan(int a,int b) //求550关于模1769的乘法逆元
// 550*X(mod1769)=1
// niyuan(1769,550)
{
int[] m={1,0,a};
int[] n={0,1,b};
int[] temp=new int[3];
int q=0; //初始化
boolean flag=true;
while(flag)
{
q=m[2]/n[2];
for(int i=0;i<3;i++)
{
temp[i]=m[i]-q*n[i];
m[i]=n[i];
n[i]=temp[i];
}
if(n[2]==1)
{
if(n[1]<0)
{
n[1]=n[1]+a;
}
return n[1];
}
if(n[2]==0)
{
flag=false;
}
}
return 0;
}