最大公約數

2021-09-19 22:46:47 字數 1285 閱讀 9885

求兩數的最大公約數

-----簡單嗎?

-----簡單!

-----用多種方法求,可以嗎?

-----emmmmm....應該可以吧?!!!

相信絕大多數人都知道求最大公約數的如下**所示的這種方法

#include#includeint commondivisor(int x,int y)

min--;

} return min;

}int main()

先判斷兩個數的大小,將較小的數作為被除數,當滿足兩個數同時除以該被除數時跳出迴圈輸出最大公約數,否則,被除數減一,迴圈...

輾轉相減法,又稱尼考曼徹斯法,是一種簡便的求出兩數最大公約數的方法

演算法描述:做一系列減法,從而求得最大公約數。

例如 :

35和14

35-14=21  , 21-14=7 , 14-7=7 , 7-7=0 ,所以35和14的最大公約數為7

36和22

36-22=14 , 22-14=8 , 14-8=6 , 8-6=2 , 6-2=4 , 4-2=2 , 2-2=0, 所以36和22的最大公約數為2

#include#includeint commondivisor(int x,int y)

else if (y > x)

else

} return x;

}int main()

輾轉相除法,又名歐幾里德演算法(euclidean algorithm),是求最大公約數的一種方法

算式描述:用較大數除以較小數,再用出現的餘數(第一餘數)去除除數,再用出現的餘數(第二餘數)去除第一餘數,如此反

復,直到最後餘數是0為止。如果是求兩個數的最大公約數,那麼最後的除數就是這兩個數的最大公約數

例如:

100與125

125%25=25 , 25%25=0 , 所以25為100和125的最大公約數

36和22

36%22=14 , 22%14=8 , 14%8=6 , 8%6=2 ,6%2=0 ,所以2為36和22的最大公約數

#include#includeint commondivisor(int x,int y)

else if (y > x)

else

} return x;

}int main()

最大公約數

1.執行最大公約數的常用演算法,並新增異常處理模組 如輸入非法等 在基礎程式的基礎上,可以考慮手動輸入所有數字或者利用隨機數產生數字,分別加入異常處理模組。注 隨機數的產生方法 srand 的作用是提供乙個種子。然後呼叫rand 其格式為int rand void 它會根據提供給srand 的種子值...

最大公約數

最大公因數 greatest common divisor 也稱最大公約數 最大公因子,指兩個或多個整數共有約數中最大的乙個。a,b的最大公約數記為 a,b 同樣的,a,b,c的最大公約數記為 a,b,c 多個整數的最大公約數也有同樣的記號。求最大公約數有多種方法,常見的有質因數分解法 短除法 輾轉...

最大公約數

題目傳送門 題目意思是x和y的最大公約數是素數,假設有乙個素數p 即k 1 p xk1 p x k1 p xk2 p y k2 p y k2 p y 我們可以看到當要使x和y的最大公約數是p,那麼k1和k2必須是互質的。那麼我們可以列舉1 n的所有質數,對於每個質數p,它的最大係數為n p,那麼對於...