首页 > 编程语言 >欧几里得算法证明

欧几里得算法证明

时间:2024-06-13 11:14:32浏览次数:21  
标签:kb a% gcd 欧几里得 最大公约数 cd 算法 公约数 证明

求证:gcd(a,b)=gcd(b,a%b)

a,b的最大公约数,就是b,a%b的最大公约数。

 

第一步求证:

公约数cd(common divisor)cd(a,b)=cd(b,a%b)

 

设a>b 则a=kb+r (k是整数,r=a%b) (1)式

设d是a,b的公约数,也就是d能被a整除,也能被b整除。

(1)式除所d 得:a/d=kb/d+r/d    

因为a/d 和kb/d是整数,所以r/d也是整数,

所以d也是r的约数,所以d也是b,r的公约数。

所以a,b的公约数集合就是 b,a%b的公约数的集合。

cd(a,b)=cd(b,a%b)


第二步求证:

最大公约数gcd(greatest common divisor)gcd(a,b)=gcd(b,a%b)

因为:cd(a,b)=cd(b,a%b)

所以:max{cd(a,b)}=max{gcd(b,a%b)}

所以:gcd(a,b)=gcd(b,a%b)

 

第三步结论:

因为:b=0时gcd(a,b)=a

所以:得到递归式:

gcd(a,b)=a          (b==0)

gcd(a,b)=gcd(b,a%b)  (b!=0)

 

标签:kb,a%,gcd,欧几里得,最大公约数,cd,算法,公约数,证明
From: https://www.cnblogs.com/flatte/p/18245482

相关文章