#include <iostream>
#include <string>
using namespace std;
void EXTENDED_EUCLID(int a,int b);
void EXTENDED_EUCLID(int a,int b)
{
int X1=1,X2=0,X3=a,Y1=0,Y2=1,Y3=b,T1,T2,T3,Q;
while(1)
{
if(Y3==0){
cout<<"No inverse";
break;
}
else if(Y3==1){
cout<<Y2;
break;
}
else{
Q=X3/Y3;
T1=X1-Q*Y1;T2=X2-Q*Y2;T3=X3-Q*Y3;
X1=Y1;X2=Y2;X3=Y3;
Y1=T1;Y2=T2;Y3=T3;
}
}
}
int main()
{
int a,b;
cin>>a>>b;
EXTENDED_EUCLID(a,b);
return 0;
}
扩展欧几里得算法
最新推荐文章于 2024-10-01 23:05:47 发布