最大公約數

2022-05-01 11:45:11 字數 800 閱讀 9610

題目描述

求兩個數m和n的最大公約數。((m>0,n>0))

輸入輸入二個數,即m和n的值。

輸出輸出最大公約數。

法1(參考《資訊學奧賽一本通》)

求任意兩數(假設是n,m)的公約數,公約數最大可能就是較小的那個數(假設為m),最小為1。所以可以先設最大公約數gys=m。如果gys>1,且沒被n,m整除,則gys-1,繼續執行綠色部分~

#includeusing

namespace

std;

intmain()

注意在搜尋之前要先比大小,把大一點的數放前面。因為我們預設公約數最大可能就是較小的那個數,較小的那個數放後面,所以用三目運算子交換處理了

法2(參考《資訊學奧賽一本通》)

<---------

用n和m表示被除數,除數,r表示餘數,n和m的最大公約數=m與r的最大公約數。演算法如下

求n%m的值r

如果r!=0,執行3。r=0則m為最大公約數,return 0;

以m的值作為新n,r的值作為新m,執行

#includeusing

namespace

std;

intmain()

cout

return0;

}

#includeusing

namespace

std;

intans;

int gys(int n,int

m)int

main()

最大公約數

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

最大公約數

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

最大公約數

求兩數的最大公約數 簡單嗎?簡單!用多種方法求,可以嗎?emmmmm.應該可以吧?相信絕大多數人都知道求最大公約數的如下 所示的這種方法 include includeint commondivisor int x,int y min return min int main 先判斷兩個數的大小,將較...