用java编写输入两个正整数m和n,求其最大公约数和最小公倍数。
时间: 2023-11-13 19:58:59 浏览: 155
这是一个用Java编写的求两个正整数m和n的最大公约数和最小公倍数的程序。其中最大公约数和最小公倍数的计算分别采用了两种不同的方法。
1. 最大公约数的计算方法:
首先初始化为零,存公约数。公约数从2开始,公约数的最大为两个数中最小的那个,故i<=(a1<a2?a1:a2)。a1<a2?a1:a2为三元运算,判断两个数的最小值。如果两个数同时除尽,则为公约数。由于公约数是从小到大,所以循环到最后一个便是最大公约数。
2. 最小公倍数的计算方法:
首先初始化为零,存公倍数。公倍数从两个数的乘积开始,公倍数的最小为两个数中最大的那个,故j>=(a1<a2?a1:a2)。a1<a2?a1:a2为三元运算,判断两个数的最大值。如果同时除尽两个数,则为公倍数。由于公倍数是从大到小,所以循环到最后一个便是最小公倍数。
下面是完整代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner s1 = new Scanner(System.in);
System.out.print("请输入第一个数:");
int a1 = s1.nextInt();
System.out.print("请输入第二个数:");
int a2 = s1.nextInt();
int max=0,min=0;
for(int i=2;i<=(a1<a2?a1:a2);i++) {
if(a1%i==0 && a2%i==0) {
max=i;
}
}
for(int j=a1*a2;j>=(a1>a2?a1:a2);j--) {
if(j%a1==0 && j%a2==0) {
min=j;
}
}
System.out.println("最大公约数为:"+max);
System.out.println("最小公倍数为:"+min);
}
}
阅读全文