java小程序(六)

…衆ロ難τιáo~ 提交于 2020-02-25 22:13:54

【程序6】
题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
在循环中,只要除数不等于0,用较大数除以较小的数,将小的一个数作为下一轮循环的大数,
取得的余数作为下一轮循环的较小的数,如此循环直到较小的数的值为0,
返回较大的数,此数即为最大公约数,最小公倍数为两数之积除以最大公约数。

package case50;

import java.util.Scanner;

/**
 * 
 * 【程序6】 
 * 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。 
 * 在循环中,只要除数不等于0,用较大数除以较小的数,将小的一个数作为下一轮循环的大数,
 * 取得的余数作为下一轮循环的较小的数,如此循环直到较小的数的值为0,
 * 返回较大的数,此数即为最大公约数,最小公倍数为两数之积除以最大公约数。
 * @author 眼睫毛能扫地
 *
 */

//计算最大公约数
class CalGCD {

    public int CalGCD(int x, int y) {

        int t = 0;
        if (x > y) {
            t = x;
            x = y;
            y = t;
        }
        while (x != 0) {
            if (x == y)
                return y;
            else {
                int k = y % x;
                y = x;
                x = k;
            }
        }
        return y;
    }

}

public class Case06 {

    public static void main(String[] args) {

        int num1 = 0, num2 = 0, gcd = 0, lcm = 0;// gcd 最大公约数 lcm 最小公倍数
        Scanner input = new Scanner(System.in);
        System.out.println("请输入一个数字");
        num1 = input.nextInt();
        System.out.println("请再输入一个数字");
        num2 = input.nextInt();
        input.close();
        CalGCD GCD = new CalGCD();
        gcd = GCD.CalGCD(num1, num2);
        lcm = num1 * num2 / gcd;
        System.out.println("最大公约数:" + gcd + " 最小公倍数: " + lcm);

    }

}

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!