《JAVA基础实例》(第06例) 输入两个正整数 m 和 n,求其最大公约数和最小公倍数

一、题目

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

二、题思路

采用辗转相除法

最大公约数:从m,n中较小的那个数开始循环递减,直到能同时整除m和n
最小公倍数:从m,n中较大的那个数开始循环递增,直到可以同时被m和n整除,输出最小公倍数

三、代码实现

package basic.example;

import java.util.Scanner;

/**
 * Description: 最大公约数和最小公倍数
 *  
 * @author Eric
 * @date 2022/3/27
 * @version 1.0
 * 
 * <pre>
 * 修改记录:
 * 修改后版本   修改人       修改日期         修改内容
 * 2022/3/27   Eric    2022/3/27    Create
 * </pre>
 *
 */
public class BasicFor06 {


    /**
     * 最大公约数和最小公倍数
     * 辗转相除法-》》》
     *  最大公约数:从两个数最小的那个数开始递增循环,能同时整除输入两个数
     *  最小公倍数:两个数最大的那个数开始递增循环,能同时被输入的两个数整除
     * @param args
     */
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入第一个数:");
        int first = scanner.nextInt();
        System.out.println("请输入第二个数:");
        int second = scanner.nextInt();
        int i;
        for (i = Math.min(first, second); i >= 2; i--) {
            if (first % i == 0 && second % i == 0) {
                System.out.println("最大公约数为:" + i);
                break;
            }
        }
        if(i==1) System.out.println("这两个数没有最大公约数");
        for (int j = Math.max(first, second); j < first * second; j++) {
            if (j % first == 0 && j % second == 0) {
                System.out.println("最小公倍数为:" + j);
                break;
            }
        }

    }
}

四、结果截图

在这里插入图片描述

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值