java求最大公约数和最小公倍数

求两个数的最大公约数和最小公倍数是我们学习各种语言常见的一种问题,给定如何求出两个数,求出最小公倍数和最大公约数,其实只要我们理解意思,发现规律,这道题还是比较容易的,下面来看一下代码实现:

// 输入两个数,求最大公约数和最小公倍数
	System.out.println("请输入两个正整数:");
    int num1 = new Scanner(System.in).nextInt();
    int num2 = new Scanner(System.in).nextInt();
    if (num1 <= 0 || num2 <= 0) {
        System.out.println("输入错误,请重新输入");
        return;
    }
    int temp = 0;
	// 定义公约数
    int yShu = 0;
	// 定义公倍数
    int bShu = num1 * num2;   // 6 * 18 = 108
   	// 将小的放后面,下面用大的除小的
	if (num1 > num2) {        // 6 < 18
        temp = num2;
        num2 = num1;
        num1 = temp;
    }
	// 若大的除以小的余数为0,则可以直接判断小的为两个数的最大公约数
	// 若有余数的话继续辗转用大的除以小的,最后得到小的就是公约数,最小为1
    while(num1 != 0) {         // 6 != 0
        temp = num2 % num1;    // temp = 18 % 6 = 0
        num2 = num1;           // num2 = 6
        num1 = temp;           // num1 = 0
    }
    yShu = num2;               // yShu = 6
	// 最小公倍数等于两者乘积除以最大公约数
    bShu /= num2;              // bShu = 108 / 6 = 18
    System.out.println("最大公约数为:" + yShu);
    System.out.println("最小公倍数为:" + bShu);
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值