java写的辗转相除法求两个数的最大公约数和最小公倍数

辗转相除法的原理在于,数字a对数字b求模,假设余数为c,那么a和b的最大公约数就等于b和c的最大公约数。

所以java的代码如下:

public class Test {
	public static void main(String[] args) {
		int a = 12;
		int b = 9;
		int result = getResult(a, b);
		System.out.println(result);
	}
	
	static int getResult(int a,int b){
		System.out.println(a+"---"+b);
		if(a%b == 0){
			return b;
		}else{
			return getResult(b,a%b);
		}
	}
}
打印的结果是:

12---9
9---3
3

最大公约数是3

另外两个数的最小公倍数就是俩数的乘积除以最大公约数。

你可能感兴趣的:(算法)