欧几里得算法(辗转相除法)计算最大公约数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了欧几里得算法(辗转相除法)计算最大公约数相关的知识,希望对你有一定的参考价值。

算法定义:

两个整数x和y且x>y的最大公因子等同于y与x mod y的最大公因子。

整数t整除x和y当且仅当t整除y和x mod y,因为x等同于x mod y 加上y的一个整数倍。

 

另:假设最后求解到的两个数的最大公约数是1,则认为两个数互素。

 

 1 /*递归算法*/
 2 int gcd_rec(int m, int n)
 3 {
 4     if (n == 0)
 5         return m;
 6     return gcd_rec(n, m % n);
 7 }
 8 
 9 
10 /*迭代算法*/
11 int gcd_iter(int m, int n)
12 {
13     while (m % n != 0)
14     {
15         int mod = m % n;
16         m = n;
17         n = mod;
18     }
19 
20     return n;
21 }

 

以上是关于欧几里得算法(辗转相除法)计算最大公约数的主要内容,如果未能解决你的问题,请参考以下文章

通俗易懂----欧几里得算法

欧几里得算法及扩展算法。

欧几里德算法(最大公约数算法)完整分析

欧几里得算法和扩展欧几里得算法

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

欧几里得算法