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

2021-08-10 18:17:25 字數 484 閱讀 1543

先上輾轉相除的**

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  這個時候回到一開始,a,b都有乙個公因數,所以左邊的式子是可以整除公因數z的

所以餘數c也是可以整除公因數z的。a,b,c都是公因數z的倍數,他們都是z的若干倍,但是這樣一來,顯而易見,他們的係數變得越來越小了。直到最後,a和b絕對是可以整除的。我們來證明這一點。做乙個假設,a是7,b是2,t = a % b = 1;賦值後,a是2,b是1,這個時候t ==0 跳出迴圈。b的值是1,就代表公約數是1。通過這樣乙個簡短的例子,我們明白了,這樣不斷的做小係數,我們一定會得到公約數,再不濟也可以得到1。

PATB1062 最簡分數 輾轉相除法

乙個分數一般寫成兩個整數相除的形式 n m,其中 m 不為0。最簡分數是指分子和分母沒有公約數的分數表示形式。現給定兩個不相等的正分數 n1 m1 和 n2 m2,要求你按從小到大的順序列出它們之間分母為 k 的最簡分數。輸入在一行中按 n m 的格式給出兩個正分數,隨後是乙個正整數分母 k,其間以...

輾轉相除法原理

輾轉相除法原理 假設有兩個數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 輾轉相除法 輾轉相除法是求兩...