简要概述:
根据递推策略设计辗转相除法:a,b的最大公约数,也是a%b的约数。以此方法递推,直到余数为0
代码实现:
import java.util.Scanner;
public class Test{
//最大公约数
public static int yue(int n,int m){
if(n==0||m==0)
return 0;
if(n<m){
int temp = n;
n = m;
m = temp;
}
int r = n%m;
while(r!=0){
n=m;
m=r;
r=n%m;
}
return m;
}
//最小公倍数
public static int bei(int n,int m){
if(yue(n,m)==0)
return 0;
return n*m/yue(n,m);
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
System.out.println("最大公约数:"+yue(n,m));
System.out.println("最小公倍数:"+bei(n,m));
}
}
/**基本思想:
* 辗转相除法(也可以用相减法,本质相同)
*/