一、题目
输入两个正整数 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;
}
}
}
}
四、结果截图

该博客介绍了如何利用编程实现辗转相除法来求解两个正整数的最大公约数和最小公倍数。通过Java代码展示了具体的算法逻辑,包括从较小数开始递减寻找最大公约数,以及从较大数开始递增找到最小公倍数的过程。
3260

被折叠的 条评论
为什么被折叠?



