最大公約數和最小公倍數

2021-07-24 06:58:46 字數 555 閱讀 2715

數學上求最大公約數一般有兩種方法,輾轉相除法和更向相減法:

首先來普及一下這兩種數學上的方法,對接下來的演算法很有幫助。輾轉相除法,顧名思義,就是用除法來做的,不過這裡用的是%(取餘),我們假設有兩個數是有最大公約數的,記為m,而這兩個數就記為am和bm,如果a>b,那麼在使用輾轉相除法後,所得結果便是(a-b)m,隨著輾轉相除,a-b最終會是1,那麼便可求得m的值;同樣的方法,更向相減法也是這樣。

那麼接下來就看一下這兩種方法的效果吧:

int find_max(int x, int y)

else

} return x > y ? x : y;

}

while (1)

else if (y > x)

else

}

最小公倍數的運算還是得經過最大公約數,如果有倆個數x,y,而且其最大公約數為m,那麼起最小公倍數的運算法則是,x*y/m。

只需呼叫上面寫的函式,最後返回x*y/m就行了。

最大公約數 最小公倍數

求最大公約數最直接的辦法是從兩數中較小數與2之間的所有整數中乙個乙個的找。但這個方法有點浪費。有兩種有名的方法 1.輾轉相除法2.更相減損之術這兩種方法比較有名,而且現在人教版的高中數學中已經介紹了這兩種方法。下面這個是第2個,因為它只需要加減法就可以,效率高。int maxfactor unsig...

最小公倍數 最大公約數

求最小公倍數演算法 最小公倍數 兩整數的乘積 最大公約數 求最大公約數演算法 1 輾轉相除法 有兩整數a和 b a b得餘數c 若c 0,則 b即為兩數的最大公約數 若c 0,則 a b,b c,再回去執行 例如求27和 15的最大公約數過程為 27 15 餘12 15 12餘3 12 3餘0 因此...

最大公約數,最小公倍數

兩個數最大公約數 輾轉相除法 在數學中,輾轉相除法,又稱歐幾里得演算法,是求最大公約數的演算法。兩個整數的最大公約數是能夠同時整除它們的最大的正整數。輾轉相除法基於如下原理 兩個整數的最大公約數等於其中較小的數和兩數的差的最大公約數。例如 用 a,b 來表示a和b的最大公約數。已知a,b,c為正整數...