求最大公約數和最小公倍數

2021-08-15 04:00:08 字數 751 閱讀 7385

輾轉相除法求最大公因數

輾轉相除法:(簡單來說)兩個數,用較大的數除以較小的數,得到第一餘數,在用較小的數除以第乙個餘數,得到第二餘數,在用第二個餘數除以第一餘數,重複過程,直到到餘數為0;那麼最後乙個餘數就是這兩個數的最大公約數;

舉例說明:

a = 36, b = 10;

1. 36除以10得3, 餘6

2. 10除以6得1, 餘4

3. 6除以4得1, 餘2

4. 4除以2等於0

所以36和10的最大公約數為2

#include

int main()

while (a%b!=0)

printf("最大公約數是:%d",b);

return

0;}

上述程式中判斷了a和b值得大小,當a小於b時,可以不用專門比較並交換兩個數,如以下程式所示:

#include

int main()

printf("最大公因數為:%d\n", b);

return

0; }

求最小公倍數:兩個數相乘,然後除以它們的最大公因數即為最小公倍數

#include

int main()

printf("最小公倍數為:%d\n", c/b); //c是兩個數的乘積

return

0; }

求最大公約數,最小公倍數

歐幾里德遞迴演算法,大數對小數取餘直到小數為0,大數為最大公約數 param m param n return static int maxcommondivisor euclid recursion int m,int n return m 劉徽兩數相減直到兩數相等,等數為最大公約數 param ...

求最大公約數和最小公倍數

本篇文章中求最大公約數的方法是輾轉相除法,又稱歐幾里德演算法 方法是用較大的數除以較小的數,求得餘數,將餘數變成除數,除數變成被除數,重複這個過程,直到餘數變成0。而求最小公倍數的方法則是用原本兩個數的乘積除以最大公約數。define crt select no warings include in...

求最大公約數和最小公倍數

求最小公倍數實質上是基於求最大公約數的基礎上的 最小公倍數 兩整數的乘積 最大公約數 求最大公約數的方法有三種 基於對時間複雜度的角度考錄比較常用的是輾轉相除法 一.輾轉相除法 例1 求兩個正數8251和6105的最大公因數。分析 輾轉相除 餘數為零 得到結果 解 8251 6105 1 2146 ...