辗转相除法:(求最大公约数)

辗转相除法:(最大公约数)
又名欧几里德算法(Euclidean algorithm),是求最大公约数的一种方法。
它的具体做法是:用较大数除以较小数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。
如果是求两个数的最大公约数,那么最后的除数就是这两个数的最大公约数。

#include
void main()
{
    int gcd(int a, int b);
    int m, n;

    printf("please intput two numbers:\n");
    scanf_s("%d%d", &m, &n);
    printf("gcd(%d,%d) = %d\n", m, n, gcd(m, n));

}
int gcd(int a, int b)
{
    int r=1, t;

    if (a < b)
    {
        t = a;
        a = b;
        b = t;
    }
    while (r != 0)
    {
        r = a % b;
        if (r == 0)
        {
            return b;
            break;
        }
        else
        {
            a = b;
            b = r;
        }
    }

}

Original: https://www.cnblogs.com/iforeverhz/p/16255987.html
Author: iforeverhz
Title: 辗转相除法:(求最大公约数)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/583246/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球