21xrx.com
2025-03-31 03:53:41 Monday
文章检索 我的文章 写文章
Java实现求最小公倍数的方法
2023-06-14 21:38:31 深夜i     --     --
Java 最小公倍数 LCM 辗转相减法 公式

在Java编程中,经常会遇到需要求最小公倍数的情况。最小公倍数是指若干个数中能够被其中一个数整除的最小数,通常使用“LCM(Least Common Multiple)”表示。本文将介绍两种Java实现求最小公倍数的方法。

方法一:使用for循环进行求解。具体步骤为:先计算出这些数中最大的一个数max,然后从max开始进行循环,每次循环都判断这些数是否能够整除max,如果能够整除则返回max,否则max加上原最大数进行下一次循环。

方法二:使用辗转相减法求最大公约数,然后通过公式“LCM = (a*b)/GCD”计算最小公倍数。具体步骤为:先使用辗转相减法求出这些数的最大公约数GCD,然后通过公式计算得到最小公倍数LCM。

使用第一种方法的代码如下:

public static int lcm(int[] numArray){
  int max = numArray[0];
  for(int i = 1; i < numArray.length; i++){
    if(numArray[i] > max){
      max = numArray[i];
    }
  }
  int lcm = max;
  while(true){
    boolean flag = true;
    for(int i = 0; i < numArray.length; i++){
      if(lcm % numArray[i] != 0)
        flag = false;
        break;
      
    }
    if(flag)
      return lcm;
    
    lcm += max;
  }
}

使用第二种方法的代码如下:

public static int gcd(int a, int b){
  if(b == 0)
    return a;
  
  return gcd(b, a % b);
}
public static int lcm(int[] numArray){
  int lcm = numArray[0];
  for(int i = 1; i < numArray.length; i++){
    lcm = (lcm * numArray[i]) / gcd(lcm, numArray[i]);
  }
  return lcm;
}

  
  

评论区