21xrx.com
2024-11-22 07:19:24 Friday
登录
文章检索 我的文章 写文章
Java实现最大公约数和最小公倍数
2023-06-16 10:08:13 深夜i     --     --
最大公约数 最小公倍数 Java 辗转相除法 欧几里得算法

在数学中,最大公约数(Greatest Common Divisor,简称GCD)和最小公倍数(Least Common Multiple,简称LCM)是两个重要的概念。在Java编程中,我们可以使用辗转相除法和欧几里得算法来实现求解这两个数学问题。

最大公约数,又称最大公因数、最大公因子,在两个整数中最大的可以同时整除它们的数。我们可以使用辗转相除法来求解最大公约数。具体来说,假设有两正整数a和b(a>=b),我们可以用a除以b,得到余数c;之后,我们用b除以c,再得到余数d;如此往复进行,直到余数为0为止,此时的b即为a和b的最大公约数。

最小公倍数是指在两个或多个整数中公有的倍数中,最小的一个数。我们可以通过先求出最大公约数,再用两数的积除以最大公约数得到最小公倍数。

下面是Java代码实现:


public class GcdAndLcm {

  // 求最大公约数(欧几里得算法/辗转相除法)

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

   if (b == 0) return a;

   return gcd(b, a % b);

  }

  // 求最小公倍数

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

   return a * b / gcd(a, b);

  }

  public static void main(String[] args) {

   int a = 24, b = 36;

   int gcd = gcd(a, b);

   int lcm = lcm(a, b);

   System.out.printf("a和b的最大公约数是%d,最小公倍数是%d", gcd, lcm);

  }

}

  
  

评论区

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