輾轉相除法的證明

2021-06-16 23:03:35 字數 411 閱讀 1023

輾轉相除法的證明

設兩數為a、b(b<a),求它們最大公約數的步驟如下:用b除a,得a=bq+r(0≤r<b)(q是這個除法的商)。若r=0,則b是a和b的最大公約數。若r≠0,則繼續考慮。

首先,應該明白的一點是任何 a 和 b 的公約數都是 r 的公約數。要想證明這一點,就要考慮把 r 寫成 r=a-bq。現在,如果 a 和 b 有乙個公約數 d,而且設 a=sd , b=td, 那麼 r = sd-tdq = (s-tq)d。因為這個式子中,所有的數(包括 s-tq )都為整數,所以 r 可以被 d 整除。

對於所有的 d 的值,這都是正確的;所以 a 和 b 的最大公約數也是 b 和 r 的最大公約數。因此我們可以繼續對 b 和 r 進行上述取餘的運算。這個過程在有限的重複後,可以最終得到 r=0 的結果,我們也就得到了 a 和 b 的最大公約數。

輾轉相除法最簡單最通俗證明

先上輾轉相除的 while true 為什麼要這麼做?我們來證明餘數也是公因數的倍數 a,b兩個數,a b 肯定是有乙個公因數1的,或者也可能有乙個更大的公因數z。不管是1還是更大的,我們把他視為z。那麼a b c可以看作a 除以 b n 餘 c,a b n c a b n c 這個時候回到一開始,...

輾轉相除法原理

輾轉相除法原理 假設有兩個數x和y,存在乙個最大公約數z x,y 即x和y都有公因數z,那麼x一定能被z整除,y也一定能被z整除,所以x和y的線性組合mx ny也一定能被z整除。m和n可取任意整數 對於輾轉相除法來說,思路就是 若x y,設x y n餘c,則x能表示成x ny c的形式,將ny移到左...

約分 輾轉相除法

include using namespace std int main int temp1 int temp2 cin temp1 temp2 int a temp1 int b temp2 while b 0 int temp a b a b b temp cout 輾轉相除法 輾轉相除法是求兩...