一.最大公約數的定義
兩個不全爲0的非負整數m和n的最大公約數即爲gcd(m,n),代表着能夠被m和n整除(即餘數爲0)的最大正整數。
二.關於歐幾得算法
古希臘數學家、亞歷山大港的歐幾里得(公元前3世紀)所著的《幾何原本》,以系統論述幾何學而著稱,在其中的一卷裏,他簡要的描述了最大公約數算法。用現代數學的術語來表示,歐幾得算法(Euclid’s algorithm)採用的方法是重複應用下列等式,直到m mod n 等於0。
gcd(m,n) = gcd(n,m mod n);
因爲gcd(m,0) = m,m的最後取值也就是m和n的初值的最大公約數。
舉個例子:gcd(60,24) = gcd(24,12) = gcd(12,0) = 12
三.代碼實現
#include <iostream>
using namespace std;
int main(int argc, const char * argv[]) {
int x,y,z;
cout << "請輸入你的要求最大公約數的兩個不全爲0的兩個整數:";
cin >> x >> y;
while(y!=0)
{
z = x % y; //將餘數保存下來
x = y; //進行賦值
y = z;
};
cout << x << endl;
return 0;
}