最大公约数与最小公倍数

  1. 概念

  2. 求最大公约数

  3. 求最小公倍数

  4. 拓展

一、概念

最大公约数:就是当前几个数字中公有因数中组大的一个

最小公倍数:当前几个数字中倍数最小的一个

核心公式: X*Y = 最大公约数* 最小公倍数

二、求最大公约数的三种方式

1、辗转相除

 代码实现:

/*
辗转相除
*/
int passedBy(int x, int y)
{
    int n = y;
    while (x % y != 0)
    {
        n = x % y;
        x = y;
        y = n;
    }
    return n;
}

2、辗转相减

代码实现

/*
辗转相减
*/
int passedSubtracting(int x ,int y) {
    while (x != y) {
        if (x > y) {
            x = x - y;
        }
        else {
            y = y - x;
        }
    }
    return x;
}

3、穷举

 代码实现

/*
穷举法 
*/
int exhaustion(int x, int y) {
    int temp = 0;
    for (temp = x;; temp--) {
        if (x % temp == 0 && y % temp == 0) {
            break;
        }
    }
    return temp;
}

三、求最小公倍数

求最小公倍数,利用公式,首先求最大公约数

/*
利用最大公约数,求最小公倍数
*/
int fx(int x,int y) {
    int res = passedSubtracting(x,y);
    return x * y / res;
}

四、拓展

当求n个数字的最大公约数与最小公倍数(n >2)

参考:https://blog.csdn.net/qq_34793133/article/details/80305401

 

posted @ 2020-11-13 11:17  byebai95  阅读(2107)  评论(0编辑  收藏  举报