欧几里德与扩展欧几里德算法

来源:互联网 发布:淘宝如何上架宝贝 编辑:程序博客网 时间:2024/06/05 20:04

1.欧几里德算法

int gcd(int x,int y){    return y?gcd(y,x%y):x;}
(注:不用比较大小)


2.扩展欧几里德算法

定理:对于任意整数a,b,都存在一组整数x、y使得ax+by=gcd(a,b)成立 (当且仅当gcd(a,b)|c时,方程有整数解)

int exgcd(int a,int b,int &x,int &y){    if(!b){        x=1;y=0;return a;    }    int t,d;    d=exgcd(b,a%b,x,y);    t=x;x=y;y=t-a/b*y;    return d;}


0 0
原创粉丝点击