標籤:#萌新 #0基礎 #簡約實現:
此處我們用到的是歐幾里德演算法(輾轉相除法),求兩個數的最大公約數的步驟如下:
1.先用小的乙個數除大的乙個數,得第乙個餘數;
2.再用第乙個餘數除小的乙個數,得第二個餘數;
3.又用第二個餘數除第乙個餘數,得第三個餘數;
這樣逐次用後乙個數去除前乙個餘數,直到餘數是0為止。那麼,最後乙個除數就是所求的最大公約數(如果最後的除數是1,那麼原來的兩個數是互質數)。
而求最小公倍數:
兩個正整數的最小公倍數=兩個數的乘積÷兩個數的最大公約數
由於兩個數的乘積等於這兩個數的最大公約數與最小公倍數的積。這就是說,求兩個數的最小公倍數,可以先求出兩個數的最大公約數,再用這兩個數的最大公約數去除這兩個數的積,所得的商就是兩個數的最小公倍數。
**送上:
numb_1 =
int(
input
('請輸入第乙個正整數:'))
numb_2 =
int(
input
('請輸入第二個正整數:'))
'''輸入兩位正整數,稍後作比較,並輸出結果'''
numb_max =
max(numb_1,numb_2)
#取較大值賦值給變數 numb_max
numb_min =
min(numb_1,numb_2)
#取較小值賦值給變數 numb_min
i =1
#提前生成乙個引數i,作為後面的引數傳遞使用
while i !=0:
i = numb_max % numb_min #先求兩個數的餘數,並賦值給引數i
numb_max = numb_min #將較小的數傳遞(賦值)給較大的數
if i ==0:
#此處判斷餘數是否為0
e =int(
(numb_1 * numb_2)
/numb_min)
#此處求兩數最小公倍數
'''若餘數為0,則可求得兩數的最小公倍數和最大公約數'''
print
(f'這兩個正整數的最大公約數是'
)print
(f'這兩個正整數的最小公倍數是'
)break
else
: numb_min = i
#若餘數不為0,則將餘數傳遞(賦值)給較小的數,並返回到while的判斷條件,發現滿足i不等於0,繼續求新賦值的兩數numb_max和numb_min的餘數,如此類推,直到滿足i等於0,求出結果,跳出迴圈
求兩個正整數的最大公約數
基本要求 從鍵盤輸入兩個整數,輸出兩個整數的最大公約數。用c或c 語言實現程式解決問題。1.程式風格良好 使用自定義注釋模板 2.使用三種演算法解決問題 3.提供友好的輸入輸出,並進行輸入資料的正確性驗證 方法一 窮舉法 窮舉法,顧名思義,就是乙個乙個試,即遍歷兩個整數中較小的數到零的所有數,如果能...
求兩個正整數的最大公約數
求兩個正整數的最大公約數問題 版本 v1.0 主要功能 1 輾轉相除法 a b得餘數c 若c 0,則b即為兩數的最大公約數,結束 若c 0,則a b,b c,再回去執行 2 相減法 兩整數a和b 若a b,則a a b 若a b,則a 或b 即為兩數的最大公約數,結束 若a b,則再回去執行 3 窮...
求兩個正整數的最大公約數Python版
求兩個數的最大公約數我分別採用輾轉相除法,輾轉相減法,列舉法來求得。最小公倍數就是兩個數之積除以最大公約數的結果。1.將兩整數求餘 a b x 2.如果x 0 則b為最大公約數 3.如果x 0,則 a b b x 繼續從1開始執行 4.也就是說該迴圈的是否繼續的判斷條件就是x是否為0 輾轉相除法 d...