数论算法——欧几里得算法证明

欧几里得算法(辗转相除法)

g c d ( a , b ) = g c d ( b , a   m o d   b ) gcd (a, b) = gcd(b,a \ mod \ b) gcd(a,b)=gcd(b,a mod b)

证明

必要性:

假设 A , B A,B A,B 是整数, R R R A , B A, B A,B 的余数,即 R = A   m o d   B R = A\ mod\ B R=A mod B .

A , B A, B A,B 是整数,所以 A A A 可以写成
A = B q + R (1) A = Bq + R\tag1 \\ A=Bq+R(1)
假设 u u u A , B A,B A,B 的一个公因数,即 u = ( A , B ) u = (A,B) u=(A,B) ,则 A , B A,B A,B 可以写成:
A = a ′ u B = b ′ u (2) A = a'u\\\tag2 B = b'u A=auB=bu(2)
( 2 ) (2) (2) 式代入 ( 1 ) (1) (1) 式,得:
a ′ u = b ′ u q + R (3) a'u = b'uq + R\tag3 au=buq+R(3)
整理得:
R = u ( a ′ − b ′ q ) (4) R = u(a'-b'q)\tag4 R=u(abq)(4)
又因为, a ′ , b ′ , q a',b',q a,b,q 均为整数,所以 a ′ − b ′ q a'-b'q abq 也为整数,则 R  可以写成 : R\ 可以写成: R 可以写成:
R = u r ′ (5) R = ur'\tag5 R=ur(5)
所以 u u u 也是 R R R 的因数,即 u u u A , B , R A,B,R A,B,R 的公因数,即
( A , B ) = ( B , R ) (6) (A,B) = (B,R)\tag6 (A,B)=(B,R)(6)

( A , B ) = ( B , A   m o d   B ) (7) (A,B) = (B,A\ mod \ B)\tag7 (A,B)=(B,A mod B)(7)
充分性:

同样假设 v v v 为 $B,R $ 的公因数,即:
B = b ′ v R = r ′ v (8) B = b'v\\ R = r'v\tag8 B=bvR=rv(8)
代入 ( 1 ) (1) (1) 式得:
A = b ′ v q + r ′ v (9) A = b'vq+r'v\tag9 A=bvq+rv(9)
整理得
A = v ( b ′ q + r ′ ) (10) A = v(b'q+r')\tag{10} A=v(bq+r)(10)

A = v a ′ (11) A = va'\tag{11} A=va(11)
所以, v v v A , B , R A,B,R A,B,R 的公因数。

综上,因为 u , v u,v u,v 均为任意公因数,所以 ( A , B ) = ( B , R ) (A,B) = (B,R) (A,B)=(B,R) ,即两公因数集合相等,易知集合中的最大值(最大公因数)也相等

得证: g c d ( A , B ) = g c d ( B , A   m o d   B ) gcd(A,B) = gcd(B,A\ mod\ B) gcd(A,B)=gcd(B,A mod B)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

华幽子丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值