辗转相除法求最大公约数

简介: 假设 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);
    }
}


目录
相关文章
|
1天前
|
移动开发 算法
最大公约数和最小公倍数
最大公约数和最小公倍数。
7 2
|
4天前
|
算法
辗转相除法求最大公约数
辗转相除法求最大公约数
|
4天前
|
算法
更相减损术求最大公约数
更相减损术求最大公约数
|
13天前
|
算法
详解最大公约数和最小公倍数
详解最大公约数和最小公倍数
|
11月前
|
人工智能 BI
求最大公约数和最小公倍数
求最大公约数和最小公倍数
55 0
辗转相除法 求最大公约数
辗转相除法 求最大公约数
769 0
求最大公约数最小公倍数
求最大公约数最小公倍数
99 0
每日一更1011:最大公约数与最小公倍数
题目描述: 输入两个正整数m和n,求其最大公约数和最小公倍数。 输入: 两个整数 输出:
100 0
辗转相除法__约分
辗转相除法__约分
64 0

热门文章

最新文章