- 欧几里得算法简介
- 欧几里得算法证明
- 欧几里得算法实现
- 扩展欧几里得算法
- 欧几里得算法简介
欧几里得算法又称为辗转相除法,用于计算两个整数的最大公因子。
基本算法:设,其中a,b,q,r都是整数,则
,即
- 欧几里得算法证明
第一种方法证明
a可以表示成,则
假设d是a和b的一个公约数,则有
和
又因为
,则有
因此,d是a和b的一个公约数 假设d是b和
的公约数,则有
和
,但
因此,d也是a和b的一个公约数。
- 欧几里得算法实现
递归实现算法:
迭代形式实现:int gcd(int a,int b) { if(b==0) return a; return gcd(b,a%b); }
int Gcd(int a, int b) { while(b != 0) { int r = b; b = a % b; a = r; } return a; }
参考博文:欧几里得与扩展欧几里得算法