辗转相除法求最大公约数

简介: 假设 a / b =c …… d 欧几里得算法:被除数与除数的公约数和除数与余数的公约数相同,那么它们的最大公约数也相同即:a 和 b 的最大公约数与 b 和 d 的最大公约数相同

一、辗转相除法的原理


假设 a / b =c …… d


欧几里得算法:被除数与除数的公约数和除数与余数的公约数相同,那么它们的最大公约数也相同


即:a 和 b 的最大公约数与 b 和 d 的最大公约数相同


二、辗转相除法代码


传值时不必考虑x与y哪个大与小,比如求35与15的最大公约数:


35/15=2……5      15/35=0……15


15/5=3……0        35/15=2……5


                           15/5=3……0


参数1小于参数2只是多计算了一步,并不影响结果


通过辗转相除法可写递归代码如下:

int GCD(int x, int y)
{
    if (x % y == 0)
    {
        return y;
    }
    else
    {
        GCD(y, x % y);
    }
}


目录
相关文章
|
2月前
辗转相除法
【10月更文挑战第21天】辗转相除法。
33 2
|
6月前
|
JavaScript 前端开发 Java
最大公约数
【6月更文挑战第23天】
73 4
|
6月前
|
移动开发 算法
最大公约数和最小公倍数
【6月更文挑战第8天】最大公约数和最小公倍数。
66 9
|
6月前
每日一数——最大公约数与最小公倍数
每日一数——最大公约数与最小公倍数
|
7月前
|
算法
辗转相除法求最大公约数
辗转相除法求最大公约数
|
7月前
|
算法
详解最大公约数和最小公倍数
详解最大公约数和最小公倍数
|
人工智能 BI
求最大公约数和最小公倍数
求最大公约数和最小公倍数
91 0
辗转相除法 求最大公约数
辗转相除法 求最大公约数
819 0