21xrx.com
2024-10-18 16:04:35 Friday
登录
文章检索 我的文章 写文章
Java实现求最大公约数和最小公倍数
2023-06-15 20:34:22 深夜i     --     --
Java 求最大公约数 求最小公倍数

在编程中,求最大公约数和最小公倍数是很常见的需求。本文将介绍如何用Java语言实现求最大公约数和最小公倍数的方法。

方法一:暴力枚举法

暴力枚举法是最简单的求最大公约数和最小公倍数的方法。具体实现如下:


public static int maxCommonDivisor(int num1, int num2) {

    int result = 1;

    for (int i = 1; i <= num1 && i <= num2; i++) {

      if (num1 % i == 0 && num2 % i == 0)

        result = i;

      

    }

    return result;

  }

  public static int minCommonMultiple(int num1, int num2) {

    int result = num1 * num2;

    for (int i = num1 * num2; i >= num1 && i >= num2; i--) {

      if (i % num1 == 0 && i % num2 == 0)

        result = i;

      

    }

    return result;

  }

方法二:辗转相除法

辗转相除法也是一种常见的求最大公约数的方法,具体实现如下:


public static int maxCommonDivisor(int num1, int num2) {

    int temp;

    if (num1 < num2)

      temp = num1;

      num1 = num2;

      num2 = temp;

    

    while (num2 != 0)

      temp = num1 % num2;

      num1 = num2;

      num2 = temp;

    

    return num1;

  }

方法三:更相减损术

更相减损术也是一种常见的求最大公约数的方法,具体实现如下:


public static int maxCommonDivisor(int num1, int num2) {

    int temp;

    if (num1 < num2)

      temp = num1;

      num1 = num2;

      num2 = temp;

    

    if (num1 == num2)

      return num1;

    

    int diff = num1 - num2;

    return maxCommonDivisor(diff, num2);

  }

综上所述,本文介绍了Java语言实现求最大公约数和最小公倍数的三种方法。其中,暴力枚举法简单易懂,辗转相除法计算效率高,更相减损术比辗转相除法更适用于大数求解。

  
  

评论区

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