21xrx.com
2024-12-23 01:41:51 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;

}

  
  

评论区

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