【扩展欧几里德算法】

〖相关资料

《欧几里德算法的证明》        《欧几里德算法与扩展欧几里德算法》        《扩展欧几里德专题》

〖相关知识

对于非负整数 $a,b$,求数对 $x,y$ ,满足 $ax+by=gcd(a,b)$ 

对于不定整数方程 $ax+by=c$ ,若 $c\bmod gcd(a,b)=0$ ,则该方程存在整数解,否则不存在整数解。

若已知 $ax+by=gcd(a,b)$ 的一组解 $x_{0},y_{0}$ ,则其他整数解满足 $x=x_{0}+\frac{b}{gcd(a,b)}\cdot t$ , $y=y_{0}-\frac{a}{gcd(a,b)}\cdot t$ 。

出现负数时取绝对值。

〖模板代码

  [扩展欧几里得算法]

1 LL exgcd(LL a,LL b,LL& x,LL& y)
2 {
3     if(!b){x=1;y=0;return a;}
4     LL ans=exgcd(b,a%b,x,y);
5     LL tmp=x;x=y;y=tmp-a/b*y;
6     return ans;
7 }
View Code

相关文章: