欢迎访问宙启技术站
智能推送

Java函数求取两个整数的最大公约数

发布时间:2023-06-26 13:43:43

最大公约数简称最大公因数,指两个或多个整数公有的约数中最大的一个。本文主要介绍Java函数如何求取两个整数的最大公约数。

1. 辗转相除法

辗转相除法也称为欧几里得算法,它是求最大公约数的常用方法。其基本原理是利用较大数除以较小数,将较小数作为除数,余数作为新的被除数,重复以上过程,直到余数为0为止。此时,较小的数即为原两数的最大公约数。

Java代码如下:

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

   while (b != 0) {

       int temp = b;

       b = a % b;

       a = temp;

   }

   return a;

}

2. 更相减损法

更相减损法也是求最大公约数的一种方法。它的基本原理是利用较大数减去较小数,不断重复此过程,直到两个数相等。此时,得到的数即为原两数的最大公约数。

Java代码如下:

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

   if (a == b)

       return a;

   if (a > b)

       return gcd(a - b, b);

   else

       return gcd(a, b - a);

}

3. 质因数分解法

质因数分解法是将一个数分解成若干个质数的乘积,然后比较两个数的质因数,求出它们的公共部分,并将这些公共部分相乘即为最大公约数。

Java代码如下:

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

   int result = 1;

   int i = 2;

   while (i <= a && i <= b) {

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

           result *= i;

           a /= i;

           b /= i;

       } else {

           i++;

       }

   }

   return result;

}

以上三种方法都可以用来求取两个整数的最大公约数,根据实际需要选择合适的方法即可。