求两个数的最大公约数和最小公倍数是我们学习各种语言常见的一种问题,给定如何求出两个数,求出最小公倍数和最大公约数,其实只要我们理解意思,发现规律,这道题还是比较容易的,下面来看一下代码实现:
// 输入两个数,求最大公约数和最小公倍数
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);
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/83630.html