import java.util.Scanner;
/**
* 作者: 北大青猫
* 时间: 2022-03-22 08:46 星期二
* 备注: 输入两个正整数m和n,求其最大公约数和最小公倍数
*/
public class D1 {
public static void main(String[] args) {
Scanner s1= new Scanner(System.in);
while (true){
System.out.println("请输入第一个数:");
int a1=s1.nextInt();
System.out.println("请输入第二个数:");
int a2=s1.nextInt();
//初始值为零,存公约数
int max=0 ;
//公约数从2开始,公倍数的最大为两个数中最小的的那个,故(a1<a2?a1:a2)
//(a1<a2?a1:a2)为三元运算 ,判断两个数的最小值
for(int i=2;i<=(a1<a2?a1:a2);i++){
//如果两个数同时除尽,则为公约数
if (a1%i==0 && a2%i==0){
//由于公约数是从小到大,所以循环到最后一个的便是最大的公约数
max=i;
}
}
//初始值为零,存公倍数
int min=0 ;
//公倍数是从两个数的乘积开始,公倍数的最小为两个数中的最大的那个,所以(a1>a2?a1:a2) 判断两个数的最大值
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);
System.out.println();
}
}
}