package myjob2;
import java.util.Scanner;
public class myjob2text {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in =new Scanner(System.in);
System.out.println("输入x的值:");
int x=in.nextInt();
System.out.println("输入y的值:");
int y=in.nextInt();
System.out.println("请输入m的值:");
System.out.println("1.辗转相除法求得的最大公约数和最小公倍数");
System.out.println("2.辗转减法求得的最大公约数和最小公倍数");
System.out.println("3.穷举法求得的最大公约数和最小公倍数");
Scanner input =new Scanner(System.in);
int m=input.nextInt();
switch(m) {
case 1:
System.out.println("辗转相除法求得的最大公约数为:"+commondivisor1(x,y));
System.out.println("最小公倍数为:"+commommultiple(x,y));
break;
case 2:
System.out.println("辗转相减法求得的最大公约数为:"+commondivisor2(x,y));
System.out.println("最小公倍数为:"+commommultiple(x,y));
break;
case 3:
System.out.println("穷举法求得的最大公约数为:"+commondivisor3(x,y));
System.out.println("最小公倍数为:"+commommultiple(x,y));
break;
default:
System.out.println("输入的选项不正确,请重新输入!");
break;
}
}
//辗转相除法求最大公约数
public static int commondivisor1(int a,int b) {
return a%b==0?b:commondivisor1(b,a%b);
}
//辗转相减法求最大公约数
public static int commondivisor2(int a,int b) {
if(a-b==b)
return b;
return a-b>b?commondivisor2(a-b,b):commondivisor2(b,a-b);
}
//穷举法求最大公因数
public static int commondivisor3(int a,int b) {
int c;
for(c=a;c>0;c--) {
if(c%a==0 && c%b==0) {
break;
}
}
return c;
}
//求最小公倍数
public static int commommultiple(int a,int b) {
int c;
for(c=a; ;c++) {
if(c%a==0 && c%b==0) {
break;
}
}
return c;
}
}