1.JAVA语言。
2.描述它的解题思路。
3.写出代码并注释。
Scanner scan=new Scanner(System.in);
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);//x*y除以最大公约数得到最小公倍数
思路:
1.辗转相除法:
两整数m和n:
(1)比较两数大小,若m小于n,交换
(2) m%n得到余数fan
(3)若fan为0时,则n是两个数的最大公约数
(4)若fan不为0时,则m=n,n=fan,再执行(1),继续循环