JAVA求两个数的最小公倍数和最大公约数(两种方法)
输入两个数,求最小公倍数和最大公约数
例如,12和20的最大公约数是4,最小公倍数是60
1.代码(辗转相除)
Scannerscan=newScanner(System.in); System.out.println("请输入两个整数:"); intm=scan.nextInt(); intn=scan.nextInt(); intfan=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.代码(从大到小除)
Scannerscan=newScanner(System.in); System.out.println("请输入两个整数:"); intm=scan.nextInt(); intn=scan.nextInt(); intmin=m<n?m:n; //找出最小数for(inti=min;i>0;i--){ //从大到小除if(m%i==0&n%i==0){ min=i; break; //第一个就是最大公约数,break跳出 } } intmax=m*n/min; //最小公倍数System.out.println("最大公约数:"+min); System.out.print("最小公倍数:"+max);
运行结果