C語言 求兩個數的最大公約數

2021-09-12 21:30:51 字數 610 閱讀 9021

求兩個數的最大公約數。

最大公約數定義:

如果a,b是非零整數,而整數q同時是a,b的因數,我們便把q叫做a,b的公因數。

顯然,q的絕對值必然不大於a,b的絕對值的最小者,即|q|<=min

上式表明,兩個非零整數的公因數必只有有限多個,於是,其中一定存在乙個最大的。我們把a,b的所有公因數中最大的乙個公因數d,叫做a,b的最大公因數,記作 d = (a,b)。

由以上定義可知:兩個未知數a,b可能的最大公約數為|a|,|b|中較小的乙個,假設a的絕對值較小,那麼a,b的最大公約數就在(0,|a|)之間,從小到大依次判斷(0,|a|)之間有哪些數是a,b的公約數,將最後得到的公約數輸出即可。

**如下:

#define _crt_secure_no_warnings

#include #include #include int main()

for (int i = 1; i < c + 1; i++)

} printf("這兩個數的最大公因數是:%d\n", d);

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 第二種方法,輾轉相除法...