21xrx.com
2024-12-23 03:50:08 Monday
登录
文章检索 我的文章 写文章
Java、最大公约数、最小公倍数、求解
2023-06-17 20:07:50 深夜i     --     --

求解Java中的最大公约数和最小公倍数并不难,只需要掌握一些基本的算法和语法知识即可。在Java中,求最大公约数和最小公倍数有多种方法,本文将介绍其中一种比较简单的方式。

1. 最大公约数的求解:

最大公约数是指两个或多个正整数共有约数中最大的一个数。 求两个数a,b的最大公约数的步骤如下:

1) 暴力枚举法:从1开始枚举,找到a和b都能够整除的最大的数为最大公约数。

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

  int gcd=1;

  for(int i=1;i<=a && i<=b;i++){

    if(a%i==0 && b%i==0)

      gcd=i;

  }

  return gcd;

}

2) 辗转相除法:利用除数和余数的概念,用较小的数去除较大的数,然后用上一次的除数除以上一次的余数,直到余数为0为止,此时最大公约数为上一次的除数。

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

  if(b==0)

    return a;

  else{

    return gcd(b, a%b);

  }

}

2. 最小公倍数的求解:

最小公倍数是指两个或多个正整数的公共倍数中最小的一个数。 求两个数a,b的最小公倍数的步骤如下:

1) 直接用a、b的乘积除以它们的最大公约数就可以了。

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

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

}

2) 通过枚举的方式,从a、b中较大的那个开始,每一个乘上它们的公共倍数,直到得到的结果同时也是a、b的倍数时,则停止乘法运算。

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

  int temp=Math.max(a,b);

  while(true){

    if(temp%a==0&&temp%b==0)

      return temp;

    temp++;

  }

}

以上就是Java中求解最大公约数和最小公倍数的方法,两个函数代码量都比较小,实现起来也很容易。如果需要在Java中频繁地使用这些函数,则建议将它们封装成一个静态工具类,这样会更加方便使用。

  
  

评论区

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