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

用Java函数计算两个数的最大公约数

发布时间:2023-06-20 17:17:56

最大公约数(GCD)是指两个或多个整数中最大的数,它同时是这些数的约数。计算两个数的最大公约数在算法中经常出现,通常用于化简分数、求解模运算等。

在Java中,我们可以使用欧几里得算法(又称辗转相除法)来计算两个数的最大公约数。该算法基于以下定理:如果a、b是整数,且a>b,则a和b的最大公约数等于a除以b的余数r和b的最大公约数。

具体实现方式如下所示:

public static int gcd(int a, int b) {
    if (b == 0) {
        return a;
    } else {
        return gcd(b, a % b);
    }
}

上述代码中,gcd()函数接收两个整数a和b作为参数,返回它们的最大公约数。如果b为0,则a即为最大公约数,直接返回a;否则,递归调用gcd()函数,求出a除以b的余数r和b的最大公约数。

该算法的时间复杂度为O(log n),因为每次递归调用都可以将被除数减少一半,最多进行log n次操作即可求出最大公约数。