欢迎访问宙启技术站
智能推送

Java函数实现最大公约数和最小公倍数的方法

发布时间:2023-06-22 02:01:46

在Java中,实现最大公约数和最小公倍数可以通过递归函数来实现,同时也可以使用循环结构来实现。

(1)实现最大公约数函数:

方法一:辗转相除法

public static int gcd(int a, int b) {
    if (b == 0)
        return a;
    else
        return gcd(b, a % b);
}

方法二:更相减损法

public static int gcd(int a, int b) {
    if (a == b)
        return a;
    else if (a > b)
        return gcd(a - b, b);
    else
        return gcd(a, b - a);
}

(2)实现最小公倍数函数:

方法一:求最小公倍数就是利用最大公约数的与原数的乘积关系进行求解,公式为:最小公倍数 = 两数之积 / 最大公约数。

public static int lcm(int a, int b) {
    int gcd = gcd(a, b);
    return (a * b) / gcd;
}

方法二:通过循环来计算最小公倍数

public static int lcm(int a, int b) {
    int max = Math.max(a, b);
    int min = Math.min(a, b);
    for (int i = max; ; i += max) {
        if (i % min == 0)
            return i;
    }
}

使用方法:

public static void main(String[] args) {
    int a = 48;
    int b = 60;
    System.out.println("a和b的最大公约数为:" + gcd(a, b));
    System.out.println("a和b的最小公倍数为:" + lcm(a, b));
}

输出结果:

a和b的最大公约数为:12
a和b的最小公倍数为:240

总结

Java中实现最大公约数和最小公倍数函数的方法有多种,辗转相除法和更相减损法是比较常用的方法;求最小公倍数可以通过公式(L = a * b / GCD)和循环来实现。只要掌握好了这些方法,就可以轻松地解决最大公约数和最小公倍数的问题。