您的位置:首页 > 其它

extgcd 扩展欧几里得算法模板

2018-02-09 17:59 190 查看
#include <bits/stdc++.h>
using namespace std;

int extgcd (int a,int b,int &x,int &y){

int d = a;
if(b != 0){
d = extgcd(b,a%b,y,x);
y -= (a / b)*x;
}
else
x=1,y=0;
return d; // 返回最大公约数
}

int main(){

int a,b,x,y;// x y 分别表示满足 x * a + y * b = 1 的系数
scanf("%d %d",&a, &b);
int t = extgcd(a,b,x,y);
if (t != 1)
printf("不存在\n");

else
printf("%d %d\n",x,y);
return 0;
}


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: