21xrx.com
2024-12-23 01:33:31 Monday
登录
文章检索 我的文章 写文章
Java程序如何实现求最大公约数和最小公倍数
2023-06-11 12:42:38 深夜i     --     --
Java程序 最大公约数 最小公倍数

Java是一种面向对象的编程语言,可用于开发各种应用程序。那么Java程序能否直接运行呢?答案是肯定的。只要安装了Java运行环境(JRE),即可直接运行Java程序。

在Java中,求最大公约数和最小公倍数也是相对容易的。下面将介绍两种常见的方法。

方法一:利用辗转相除法求最大公约数和最小公倍数

辗转相除法,也叫欧几里得算法,是一种求最大公约数的方法。具体实现过程如下:

1. 将两个数分别称为a和b,假设a>b。

2. 用a除以b,得到余数c。

3. 若c为0,则b就是最大公约数。

4. 若c不为0,则将b赋值给a,将c赋值给b,重复步骤2和步骤3。

最小公倍数可以通过最大公约数求得,方法如下:

1. 求出a和b的最大公约数gcd。

2. 将a和b分别除以gcd,得到两个数a'和b'。

3. a'和b'的积再与gcd相乘,得到最小公倍数lcm。

以下是Java代码实现:


public class GcdAndLcm {

  public static void main(String[] args) {

    int a = 14, b = 21;

    System.out.println("最大公约数:" + gcd(a, b));

    System.out.println("最小公倍数:" + lcm(a, b));

  }

  public static int gcd(int a, int b) {

    if (b == 0)

      return a;

     else {

      return gcd(b, a % b);

    }

  }

  public static int lcm(int a, int b) {

    int gcd = gcd(a, b);

    return a / gcd * b;

  }

}

方法二:利用BigInteger类求最大公约数和最小公倍数

如果需要求的数比较大,可以使用Java中的BigInteger类。以下是Java代码实现:


import java.math.BigInteger;

public class GcdAndLcm {

  public static void main(String[] args) {

    BigInteger a = new BigInteger("12345678901234567890");

    BigInteger b = new BigInteger("98765432109876543210");

    BigInteger gcd = a.gcd(b);

    BigInteger lcm = a.multiply(b).divide(gcd);

    System.out.println("最大公约数:" + gcd);

    System.out.println("最小公倍数:" + lcm);

  }

}

通过上述两种方法,可以轻松实现Java中求最大公约数和最小公倍数。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复