求兩個數的最大公約數(方法二 輾轉相除法非遞迴)

2021-08-18 19:19:47 字數 567 閱讀 9118

思路:

先假設有兩個數是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移到左邊就是x-ny=c,由於一般形式的mx+(-)ny能被z整除,所以等號左邊的x-ny(作為mx+(-)ny的乙個特例)就能被z整除,即x除y的餘數也能被z整除。具體程式如下:

求兩個數最大公約數

題目 寫乙個程式,求兩個正數的最大公約數。如1100100210001,120200021,求其最大公約數 分析 設兩個數分別為x,y 求其最大公約數f x,y 如果有x 2 0而y 2不等於0,那麼可以 約簡為f x 2,y 同樣道理適用於y 如果x與y都是偶數,那麼最大公約數可以為f x 2,y...

輾轉相除法求兩個數的最大公約數

輾轉相除法 設兩數為a b a b 求a和b最大公約數 a,b 的步驟如下 1.用a除以b,得a b q r 1 0 r1 若r 1 0,則 a,b b 2.若r 1 0,則再用b除以r 1,得b r 1 q r 2 0 r 2 若r 2 0,則 a,b r 1,若r 2 0,則繼續用r 1除以r ...

求兩個數的最大公約數 輾轉相除法

原文 輾轉相除法 當兩個數都較大時,採用輾轉相除法比較方便 其方法是 以小數除大數,如果能整除,那麼小數就是所求的最大公約數 否則就用餘數來除剛才的除數 再用這新除法的餘數去除剛才的餘數 依此類推,直到乙個除法能夠整除,這時作為除數的數就是所求的最大公約數 例如 求4453和5767的最大公約數時,...