美文网首页
最大公约数与最小公倍数(Java)

最大公约数与最小公倍数(Java)

作者: dreamsfuture | 来源:发表于2018-03-18 21:11 被阅读0次

    最大公约数[1]

    ①定义

    几个自然数公有的约数,叫做这几个数的公约数;其中最大的一个,叫做这几个数的最大公约数。

    ②辗转相除法

    又称“欧几里得算法”,是求最大公约数的算法

    求两个数的最大公约数:如果m > n,令余数remainder = m%n,如果余数不为0,则令m = n, n = remainder,再次remainder = m%n,直到remainder = 0,此时n就是最大公约数。

    求多个数的最大公约数:先求出其中两个数的最大公约数,再求这个最大公约数与第三个数的最大公约数,依次求下去,直到最后一个为止,最后所得的那个最大公约数,就是所求的几个数的最大公约数

    ③代码实现[2]

    public static int maxCommonDivisor(int m, int n) {  
            if (m < n) {     // 保证被除数大于除数
                int temp = m;  
                m = n;  
                n = temp;  
            }  
            while (m % n != 0) {  // 在余数不能为0时,进行循环  
                int temp = m % n;  
                m = n;  
                n = temp;  
            }  
            return n;    // 返回最大公约数  
        }  
    

    最小公倍数

    ①定义

    两个或多个整数公有的倍数叫做它们的公倍数,其中除0以外最小的一个公倍数就叫做这几个整数的最小公倍数[3]

    ②短除算法

    两个数相乘等于这两个数的最大公约数和最小公倍数的积。

    ③代码实现

    public static int minCommonMultiple(int m, int n) {  
            return m * n / maxCommonDivisor(m, n);  
    }  
    

    参考文献

    [1] Java求最大公约数与最小公倍数

    [2] Java求最大公约数和最小公倍数

    [3] 百度百科——最小公倍数

    相关文章

      网友评论

          本文标题:最大公约数与最小公倍数(Java)

          本文链接:https://www.haomeiwen.com/subject/iejyqftx.html