利用欧几里得算法求整系数一次不定方程ax+by=c的解

以下大部分来自《ACM/ICPC程序设计与分析》

已知:gcd(a,b) =gcd(b,a%b)

求整数a和b的最大公约数的欧几里得算法。作辗转相除如下: {\text{求整数a和b的最大公约数的欧几里得算法。作辗转相除如下:}} 求整数ab的最大公约数的欧几里得算法。作辗转相除如下:
g c d ( a , b ) 对应 a = b q 0 + r 1 ( r 1 &lt; b ) {gcd(a,b)}\qquad \qquad {\text{对应}} \qquad \qquad a=bq_{0}+r_{1}\qquad (r_{1}&lt;b) gcd(a,b)对应a=bq0+r1(r1<b)
g c d ( b , r 1 ) 对应 b = r 1 q 1 + r 2 ( r 2 &lt; r 1 ) {gcd(b,r_1)}\qquad \qquad {\text{对应}} \qquad \qquad b=r_1q_{1}+r_{2}\qquad (r_{2}&lt;r_1) gcd(b,r1)对应b=r1q1+r2(r2<r1)
g c d ( r 1 , r 2 ) 对应 r 1 = r 2 q 2 + r 3 ( r 3 &lt; r 2 ) {gcd(r_1,r_2)}\qquad \qquad {\text{对应}} \qquad \qquad r_1=r_2q_{2}+r_{3}\qquad (r_{3}&lt;r_2) gcd(r1,r2)对应r1=r2q2+r3(r3<r2)
g c d ( r 2 , r 3 ) 对应 r 2 = r 3 q 3 + r 4 ( r 4 &lt; r 3 ) {gcd(r_2,r_3)}\qquad \qquad {\text{对应}} \qquad \qquad r_2=r_3q_{3}+r_{4}\qquad (r_{4}&lt;r_3) gcd(r2,r3)对应r2=r3q3+r4(r4<r3)

·
·
·

&ThickSpace;&ThickSpace; g c d ( r n − 2 , r n − 1 ) 对应 r n − 2 = r n − 1 q n − 1 + r n &ThickSpace; ( r n &lt; r n − 1 ) \;\; {gcd(r_{n-2},r_{n-1})} \qquad {\text{对应}} \qquad r_{n-2}=r_{n-1}q_{n-1}+r_{n} \;(r_{n}&lt;r_{n-1}) gcd(rn2,rn1)对应rn2=rn1qn1+rn(rn<rn1)
&ThickSpace; g c d ( r n − 1 , r n ) 对应 r n − 1 = r n q n + r n + 1 ( r n + 1 = 0 ) \; {gcd(r_{n-1},r_{n})}\qquad {\text{对应}} \qquad r_{n-1}=r_{n}q_{n}+r_{n+1}\qquad (r_{n+1}=0) gcd(rn1,rn)对应rn1=rnqn+rn+1(rn+1=0)
g c d ( r n , r n + 1 ) 对应 r n = r n + 1 q n + 1 + r n + 2 此 时 r n + 1 = 0 , r e t u r n &ThickSpace;&ThickSpace; r n gcd(r_n,r_{n+1})\qquad {\text{对应}} \qquad r_n=r_{n+1}q_{n+1}+r_{n+2} 此时r_{n+1}=0,return \;\;r_n gcd(rn,rn+1)对应rn=rn+1qn+1+rn+2rn+1=0,returnrn
那么 &ThickSpace;&ThickSpace;&ThickSpace;&ThickSpace;&ThickSpace; g c d ( a , b ) = r n {\text{那么}} \qquad \qquad \;\;\;\;\; gcd(a,b)= r_n 那么

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值