Java实现:求任意两数的最大公约数和最小公倍数

想要用Java计算两个整数的最大公约数和最小公倍数吗?本文将为您提供基于辗转相除法(欧几里德算法)的Java代码示例,并给出详细解释,帮助您轻松理解和应用。

import java.util.Scanner;

public class GCDAndLCM {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print('请输入第一个数: ');
        int num1 = scanner.nextInt();

        System.out.print('请输入第二个数: ');
        int num2 = scanner.nextInt();

        int gcd = calculateGCD(num1, num2);
        int lcm = calculateLCM(num1, num2);

        System.out.println('最大公约数: ' + gcd);
        System.out.println('最小公倍数: ' + lcm);
    }

    // 计算最大公约数 (GCD)
    public static int calculateGCD(int num1, int num2) {
        while (num2 != 0) {
            int temp = num2;
            num2 = num1 % num2;
            num1 = temp;
        }
        return num1;
    }

    // 计算最小公倍数 (LCM)
    public static int calculateLCM(int num1, int num2) {
        return (num1 * num2) / calculateGCD(num1, num2);
    }
}

代码解释:

  1. calculateGCD(int num1, int num2) 函数:

    • 使用辗转相除法计算最大公约数。
    • 循环执行以下操作,直到 num2 等于 0:
      • num2 的值赋给临时变量 temp
      • num1num2 取余的结果赋给 num2
      • temp 的值赋给 num1
    • 最后返回 num1,即为最大公约数。
  2. calculateLCM(int num1, int num2) 函数:

    • 利用公式 LCM(a, b) = (a * b) / GCD(a, b) 计算最小公倍数。
    • 首先调用 calculateGCD() 函数计算 num1num2 的最大公约数。
    • 然后将 num1num2 的乘积除以最大公约数,得到最小公倍数。
  3. main() 函数:

    • 从用户处获取两个整数输入。
    • 调用 calculateGCD()calculateLCM() 函数计算最大公约数和最小公倍数。
    • 将结果打印输出到控制台。

现在您可以复制这段代码,并自己运行试试看!希望这篇文章能帮助您理解如何使用Java计算最大公约数和最小公倍数。

Java实现:求任意两数的最大公约数和最小公倍数

原文地址: https://www.cveoy.top/t/topic/biXn 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录