欧几里得辗转相除法

欧几里德算法又称辗转相除法,是用于计算两个正整数a,b的最大公约数。应用领域有数学和计算机两个方面。计算公式 gcd  (a, b) = gcd (b, a mod b)。(greatest common divisor,简写为gcd)
最大公约数不仅能解决求解最大公约数的问题,也能帮助来找到最小公倍数等相关问题,在实际运用中十分广泛。


该算法的程序执行流程是:

     ⒈ 首先设r为a/b所得余数即 r = a % b (0≤r
    2  如果r= 0,程序结束;b 即为最大公约数。
    3  如果r!= 0 :则将b赋给a, r赋给b ,又返回执行第一步。

下面给出两种代码版本

1.非递归版
欧几里得辗转相除法_第1张图片

2 递归版
欧几里得辗转相除法_第2张图片


你可能感兴趣的:(算法,ACM)