📜  使用欧几里德算法求两个数的 GCD 和 LCM 的Java程序(1)

📅  最后修改于: 2023-12-03 14:49:55.868000             🧑  作者: Mango

使用欧几里德算法求两个数的 GCD 和 LCM 的Java程序
简介

欧几里德算法,又称辗转相除法,用于计算两个正整数的最大公约数(GCD)。同时,利用最大公约数也可以求两数的最小公倍数(LCM)。

本文介绍的Java程序,将演示使用欧几里德算法来计算两个数的GCD和LCM。

程序代码

下面是使用欧几里德算法求两个数的GCD和LCM的Java程序:

public class GCDAndLCM {
    public static void main(String[] args) {
        int num1 = 24;
        int num2 = 60;
        int gcd = calculateGCD(num1, num2);
        int lcm = calculateLCM(num1, num2, gcd);
        System.out.println("GCD of " + num1 + " and " + num2 + " is " + gcd);
        System.out.println("LCM of " + num1 + " and " + num2 + " is " + lcm);
    }

    // 计算GCD
    public static int calculateGCD(int num1, int num2) {
        if (num2 == 0) {
            return num1;
        } else {
            return calculateGCD(num2, num1 % num2);
        }
    }

    // 计算LCM
    public static int calculateLCM(int num1, int num2, int gcd) {
        return (num1 / gcd) * num2;
    }
}

在上面的代码中,我们有两个方法,一个是calculateGCD,用于计算两个数的GCD;另一个是calculateLCM,用于计算两个数的LCM。

目前,我们可先尝试计算24和60的GCD和LCM。执行程序输出:

GCD of 24 and 60 is 12
LCM of 24 and 60 is 120
总结

欧几里德算法是计算GCD和LCM的一种有效方法。与其他相应的算法相比,欧几里德算法使用递归而不是迭代。我们在本文中使用Java编写了一个简单的程序,演示了如何使用欧几里德算法来计算两个数的GCD和LCM。