源代码:
package ll;
import java.util.Scanner;
public class homework2 {
public static int M1 (int a,int b) {//辗转相除法
if(b>a) {
int i;
i=a;
a=b;
b=i;
}
int r=a%b;
while(r!=0) {
a=b;
b=r;
r=a%b;
}return b ;
}
public static int M2(int a,int b) {//相减法
while(a!=b) {
if (a>b) a=a-b;
else b=b-a;
}return b;
}
public static int M3(int a,int b) {//穷举法
int t;
if(a>b)
t=b;
else
t=a;
while(a%t!=0||b%t!=0)
{
t--;
}return t;
}
public static void main (String ard[] ) {
System.out.println("请选择方法:");
System.out.println("1.辗转相除法 2.相减法 3.穷举法");
Scanner in=new Scanner(System.in);
int t=in.nextInt();
switch(t) {
case 1:
Scanner sc1=new Scanner(System.in);
System.out.println("请输入两个正整数");
int a=sc1.nextInt();
int b=sc1.nextInt();
int s=a*b;
int m=M1(a,b);
System.out.println("最大公约数为"+m);
System.out.println("最小公倍数为"+s/m);
break;
case 2:
Scanner sc2=new Scanner(System.in);
System.out.println("请输入两个正整数");
int i=sc2.nextInt();
int j=sc2.nextInt();
int h=i*j;
int n=M2(i,j);
System.out.println("最大公约数为"+n);
System.out.println("最小公倍数为"+h/n);
break;
case 3:
Scanner sc3=new Scanner(System.in);
System.out.println("请输入两个正整数");
int d=sc3.nextInt();
int e=sc3.nextInt();
int p=d*e;
int f=M3(d,e);
System.out.println("最大公约数为"+f);
System.out.println("最小公倍数为"+p/f);
break;
}
}
}
流程图