JAVA求两个数的最小公倍数和最大公约数(两种方法)
输入两个数,求最小公倍数和最大公约数
例如,12和20的最大公约数是4,最小公倍数是60
1.代码(辗转相除)
Scanner scan=new Scanner(System.in);
System.out.println("请输入两个整数:");
int m=scan.nextInt();
int n=scan.nextInt();
int fan = 0,x=m,y=n;
if(m<n) { //始终保持m比n大,
fan=m;m=n;n=fan;
}
while(m%n!=0) { //运用辗转相除法求出最大公约数
fan=m%n;
m=n;
n=fan;
}
System.out.println("最大公约数:"+n);
System.out.print("最小公倍数:"+x*y/n);
运行结果
2.代码(从大到小除)
Scanner scan=new Scanner(System.in);
System.out.println("请输入两个整数:");
int m=scan.nextInt();
int n=scan.nextInt();
int min=m<n?m:n; //找出最小数
for(int i=min;i>0;i--){ //从大到小除
if(m%i==0&n%i==0){
min=i;
break; //第一个就是最大公约数,break跳出
}
}
int max=m*n/min; //最小公倍数
System.out.println("最大公约数:"+min);
System.out.print("最小公倍数:"+max);