Java求两个正整数的最大公约数和最小公倍数

时间:2022-04-27 21:59:01

题目:输入两个正整数m和n,求其最大公约数最小公倍数

程序分析:利用辗除法。

最大公约数:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class CommonDivisor{
  public static void main(String args[])
  {
    commonDivisor(24,32);
  }
  static int commonDivisor(int M, int N)
  {
    if(N<0||M<0)
    {
      System.out.println("ERROR!");
      return -1;
    }
    if(N==0)
    {
      System.out.println("the biggest common divisor is :"+M);
      return M;
    }
    return commonDivisor(N,M%N);
  }
}

最小公倍数和最大公约数:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import java.util.Scanner;
public class CandC
{
  //下面的方法是求出最大公约数
  public static int gcd(int m, int n)
  {
    while (true)
    {
      if ((m = m % n) == 0)
        return n;
      if ((n = n % m) == 0)
        return m;
    }
  }
  public static void main(String args[]) throws Exception
  {
    //取得输入值
    //Scanner chin = new Scanner(System.in);
    //int a = chin.nextInt(), b = chin.nextInt();
    int a=23; int b=32;
    int c = gcd(a, b);
    System.out.println("最小公倍数:" + a * b / c + "\n最大公约数:" + c);
  }
}

大家可以参考服务器之家以前发布的文章。