import java.util.Scanner;
public class Work11 {
//输入两个正整数m和n,求其最大公约数和最小公倍数
public static void main(String[] args) {
// 输入数据,要求正整数
Scanner sc=new Scanner(System.in);
int k1=0;
System.out.println("请输入第一个正整数");
while(true) {
k1=sc.nextInt();
if(k1<=0)
System.out.println("输入数据不合法,请重新输入");
else
break;
}
int k2=0;
System.out.println("请输入第二个正整数");
while(true) {
k2=sc.nextInt();
if(k2<=0)
System.out.println("输入数据不合法,请重新输入");
else
break;
}
// 获取最大公约数
//从两个数的较小的一方开始进行尝试,如果两个都能整除则就是最大公约数
int yueshu=-1;
int min=Math.min(k1, k2);
for(int k=min;k>1;k--) {
if(k1%k==0 && k2%k==0) {
yueshu=k;
break;
}
}
// 获取最小公倍数
//从两个数中较大的一方开始进行尝试,直到两个数相乘为止。第一个可以两个数都能除尽的就是最小公倍数
int beishu=-1;
int max=Math.max(k1, k2);
for(int k=max;k<=k1*k2;k++) {
if(k%k1==0 && k%k2==0) {
beishu=k;
break;
}
}
// 输出
if(yueshu==-1)
System.out.println(k1+"和"+k2+"互质");
else
System.out.println(k1+"和"+k2+"的最大公约数"+yueshu);
if(beishu!=-1)
System.out.println(k1+"和"+k2+"的最小公倍数"+beishu);
}
}
例如: