首页 > 代码库 > 写一个方法,求两个数的最大公约数和最小公倍数。

写一个方法,求两个数的最大公约数和最小公倍数。

 

写一个方法,求两个数的最大公约数和最小公倍数。

package homework0702;

/*

 * 最大公约数

利用辗转相除法求解两个正整数的最大公约数

在循环中,只要除数不等于0,用较大的数除以较小的数,将小的一个数作为下一轮循环的大数,取得的余数作为下一轮循环较小的数,如此循环直到较小的数值为0,返回较大的数。即为最大公约数。

辗转相除法(欧几里得算法)

定理:两个整数的最大公约数等于其中较小的那个数和两数的相除余数的最大公约数。最大公约数(greatest common divisor)缩写为gcd

最小公倍数

最小公倍数 = (a * b)/最大公约数

 

 *

 */

import java.util.Scanner;

 

public class MaxMin {

 

 public static void main(String[]args){

        Scanner scanner = new Scanner(System.in);

             System.out.println("作者:王飞,郑州大学,兴唐教育");

        System.out.println("该结构用于求两个数的最大公约数和最小公倍数,欢迎使用");

        System.out.print("请输入第一个整数:\n");

        int a = scanner.nextInt();

        System.out.print("请输入第二个整数:\n");

        int b = scanner.nextInt();

        MaxMin(a,b);

    }

    public static void MaxMin(int a,int b){

        int i = a;

        int j = b;

        int x =0,y =0;

        if(a < b){

            x = b;

            b = a;

            a = x;

        }

        while(b != 0){

            y = a % b;

            a = b;

            b = y;

        }

        //最小公倍数

        int t = i * j / a;

        System.out.println(i+"和"+j+"的最大公约数为:"+ a);

        System.out.println(i+"和"+j+"的最小公倍数为:"+ t);  

    }

}

写一个方法,求两个数的最大公约数和最小公倍数。