Java 求最大公約數和最小公倍數
阿新 • • 發佈:2021-12-30
Java 求最大公約數和最小公倍數
The greatest common divisor
如果數a能被數b整除,a就叫做b的倍數,b就叫做a的約數,幾個整數中公有的約數,叫做這幾個數的公約數,其中最大的一個,叫做這幾個數的最大公約數
以下程式碼使用歐幾里得演算法
兩個數的乘積等於這兩個數的最大公約數與最小公倍數的積
使用迴圈
public static int getGCD(int a, int b) { if (a < 0 || b < 0) { return -1; //不考慮負數的約數 } if (b == 0) { return a; } while (a % b != 0) { int temp = a % b; a = b; b = temp; } return b; }
使用遞迴
public static int getGCD(int a, int b) {
if (a < 0 || b < 0) {
return -1; //不考慮負數的約數
}
if (b == 0) {
return a;
}
return a % b == 0 ? b : getGCD(b, a % b);
}
The lowest common multiple
兩個或多個整數公有的倍數叫做它們的公倍數,其中除0以外最小的一個公倍數就叫做這幾個整數的最小公倍數
public static int getLCM(int a, int b) { for (int i = a;; i = i + a) { if (i % b == 0) { return i; } } }