- 辗转相除法(又称欧几里得算法)就是一个机械地求解最大公约数问题的算法。在辗转相除法中分为使用除法运算和使用减法运算两种方法。使用减法运算简单易懂,步骤如图5.2所示。用两个数中较大的数减去较小的数(步骤),反复进行上述步骤,直到两个数的值相等(步骤的终止)。如果最终这两个数相同,那么这个数就是最大公约数。
- 代码实现(Java)
public static int getMax(int a, int b) {
while(a != b) {
if(a > b) {
a = a - b;
} else {
b = b - a;
}
}
return a;
}
测试结果
public static void main(String[] args) {
int a = 12;
int b = 42;
System.out.println("最大公约数为:" + getMax(a, b));
//System.out.println(getMin(a, b));
}
- 求最小公倍数
用两个整数的乘积除以这两个整数的最大公约数。