求兩個數的最大公約數

2021-08-27 13:48:43 字數 1251 閱讀 2852

題目:輸入兩個數n1和n2,輸出它們的最大公約數

例:  輸入12 18

輸出6分析:計算機最擅長列舉。可以先找出兩個數中的最小數字,用min儲存下來,作為迴圈的條件,然後依次判斷1~min之間的數字,看其是否滿足:能同時整除n1與n2,記下這個數字t。知道迴圈結束,則曾經記下的t的最大值就是n1與n2的最大公約數。

方法一:「列舉法」

「列舉」具體步驟如下--->

1.設t為1

2.如果u和v都能被t整除,則記下這個t

3.t加1後重複第2步,直到t等於u或v

4.那麼曾經記下的最大的可以同時整除u和v的t就是最大公約數

**:

寫法一:先找出最小數min,以min作為約束條件

#define _crt_secure_no_warnings 1

#include#includeint main()

//列舉求最大公約數

for (i = 1; i <= min; i++) }

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

system("pause");

return 0;

}

寫法二: 直接用邏輯判斷找出最小數

#define _crt_secure_no_warnings 1

#include#includeint main()

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

system("pause");

return 0;

}

方法二:輾轉相除法步驟-->

1.如果b等於0,計算結束,a就是最大公約數

2.否則,計算a除以b的餘數,讓a等於b,而b等於那個餘數

3.回到第1步

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

system("pause");

return 0;

}

求兩個數最大公約數

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

求兩個數的最大公約數

求公約數有多種方法,在這主要介紹兩種方法。1 更相減損之術 以兩數中較大的數減去較小的數,獲得的差與原先較小的數構成新的一對數,在以大的數減去小的數,依次迴圈。用同樣的方法操作,直至產生一對相等的數為止,該數即為最大公約數。include include intmain while n 0 if a...

求兩個數的最大公約數

下面用兩種方法求兩個數的最大公約數 第一種,用遞減迴圈從較小的數開始到0依次查詢能同時整除兩個數的數,則這個數就為這兩個數的最大公約數,如下 include include int main else for i tmp i 0 i system pause return 0 第二種方法,輾轉相除法...