輾轉相除法求最大公因數
輾轉相除法:(簡單來說)兩個數,用較大的數除以較小的數,得到第一餘數,在用較小的數除以第乙個餘數,得到第二餘數,在用第二個餘數除以第一餘數,重複過程,直到到餘數為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 ...