码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2017-03-26 22:07:37      阅读:253      评论:0      收藏:0      [点我收藏+]

标签:除法   under   辗转相除法   ora   main   public   greatest   个数   new   

 

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

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);  

    }

}

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

标签:除法   under   辗转相除法   ora   main   public   greatest   个数   new   

原文地址:http://www.cnblogs.com/Jack1816274408/p/6624280.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!