歐幾里得算法又稱輾轉相除法,描述如下:
兩個整數的最大公約數與 其中較小的數 和 較大的數與較小數的余數 的最大公約數相同。
其中我們需要知道,零與任何數的最大公約數為其中的那個非零數。
所以我們可以設計如下算法:
#include <iostream> using namespace std; int euclid(int m, int n); int main() { int m, n; int result; cout << "Please enter two number:" << endl; cin >> m >> n; result = euclid(m, n); cout << "Result is: " << result; return 0; } int euclid(int m, int n) { int t; while (m != 0) { t = m; m = n % m; n = t; } return n; }