C++最大公因數
在C++中,你可以使用多種算法來找出兩個或多個整數之間的最大公因數(Greatest Common Divisor, GCD)。以下是幾種常見的方法:
-
暴力搜尋法(Brute Force Method):
- 遍歷較小整數的每個因子,檢查它是否也是較大整數的因子。
- 一旦找到一個公共因子,就繼續檢查下一個因子,直到找到最大公因數。
-
歐幾里得算法(Euclidean Algorithm):
- 這是一種高效的方法,用於計算兩個整數的最大公因數。
- 它基於這樣一個事實:兩個整數的最大公因數等於較小整數和兩個整數的差的最大公因數。
- 你可以通過遞歸或疊代來實現這個算法。
-
輾轉相除法(Division Algorithm):
- 這是一種簡單的算法,用於找到兩個整數的最大公因數。
- 它通過不斷將較大的數除以較小的數,直到得到商為1來工作。
- 此時的餘數即為兩個數的最大公因數。
以下是一個使用歐幾里得算法的C++示例:
#include <iostream>
int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
int main() {
int a, b;
std::cin >> a >> b;
std::cout << "The GCD of " << a << " and " << b << " is " << gcd(a, b) << std::endl;
return 0;
}
在這個例子中,gcd
函式遞歸地調用自己,直到 b
為 0,此時返回 a
作為最大公因數。
如果你需要計算多個整數的最大公因數,你可以使用同樣的算法,每次將結果與下一個整數計算最大公因數。