求兩個數的最大公約數的三種演算法

2021-07-29 09:07:00 字數 930 閱讀 4832

從鍵盤輸入兩個整數,求著兩個整數的最大公約數。

解題思路:

從鍵盤輸入兩個數,通過以下的三個方法實現求兩個數的最大公約數:    

輾轉相除法:取兩個數中最大的數做除數,較小的數做被除數,用最大的數除較小數,如果餘數為0,則較小數為這兩個數的最大公約數,如果餘數不為0,用較小數除上一步計算出的餘數,直到餘數為0,則這兩個數的最大公約數為上一步的餘數。

相減法:取兩個數中的最大的數做減數,較小的數做被減數,用最大的數減去小數,如果結果為0,則被減數就是這兩個數的最大公約數,如果結果不為0,則繼續用這兩個數中最大的數減較小的數,直到結果為0,則最大公約數為被減數。

窮舉法:將兩個數作比較,取較小的數,以這個數為被除數分別和輸入的兩個數做除法運算,被除數每做一次除法運算,值減少1,直到兩個運算的餘數都為0,則該被除數為這兩個數的最大公約數。

/*** author:probie

* date:2017-3-21 21:38:14

*/ #include

int a, b, temp;

//輾轉相除法實現

int division()

while(a%b != 0)

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

return 0;

} //相減法實現

int subtract()

while(a-b != 0)

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

return 0;    

}//窮舉法實現

int exhaus()

for(temp = b; a%temp || b%temp; temp--);

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

return 0;

}int main()

return 0;

}

求兩個數的最大公約數的三種演算法總結

很有用的總結 從鍵盤輸入兩個整數,求著兩個整數的最大公約數。解題思路 從鍵盤輸入兩個數,通過以下的三個方法實現求兩個數的最大公約數 輾轉相除法 取兩個數中最大的數做除數,較小的數做被除數,用最大的數除較小數,如果餘數為0,則較小數為這兩個數的最大公約數,如果餘數不為0,用較小數除上一步計算出的餘數,...

求兩個數的最大公約數的三種做法

1.相減法 兩個數,相等時,最大公約數為他們其中任意乙個。不相等時,用大數減小數。得到的差和之前的那個小數再次相減,直到兩個數相等,這兩個中,任意乙個都是最大公約數。如下 includeint main printf 最大公約數為 d n b return 0 2.窮舉法 如果大數可以整除小數,那麼...

求兩個數最大公約數

題目 寫乙個程式,求兩個正數的最大公約數。如1100100210001,120200021,求其最大公約數 分析 設兩個數分別為x,y 求其最大公約數f x,y 如果有x 2 0而y 2不等於0,那麼可以 約簡為f x 2,y 同樣道理適用於y 如果x與y都是偶數,那麼最大公約數可以為f x 2,y...