//求输入两个数的最大公约数和最小公倍数
import java.util.*;
public class Testshu
{
public static void main(String [] args)
{
//定义两个整型数
int min;
int max;
//调用java.util.Scanner可以获得从键盘输入的数字;
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个数:");
//nextInt()方法用来获取int数
min = sc.nextInt();
System.out.println("请再输入一个数:");
//nextInt()方法用来获取int数
max = sc.nextInt();
//调用后面的静态方法最大公约数Gcd(),最小公倍数Lcm()
//判断两个数的大小,min比max小不用换,min比max大则互换位置
if(max<min)
{
int temp = min;
min = max;
max = temp;
}
System.out.println("最大公约数为:"+Gcd(min,max));
System.out.println("最小公倍数为:"+Lcm(min,max));
}
//求最大公约数
public static int Gcd(int min, int max)
{
//利用递归,大的数除小的数,若余数不为0,则让较小得数(min)做被除数,余数(k)做除数,直到k=0,此时min为最大公约数
//运用递归调用将求余之后的值作为min * 将之前的min作为max直到求余值为0为止结束循环
while(max%min != 0)
{
int k = max%min;
max = min;
min = k;
}
return min;
}
//求最小公倍数
public static int Lcm(int min ,int max)
{
//最小公倍数就是两个数相乘再除以最大公约数
return min*max/Gcd(min,max);
}
}