求兩個數的最大公約數

2021-09-24 19:34:41 字數 1137 閱讀 8138

求兩個數的最大公約數

1. 輾轉相除法

給定兩個數,用第乙個數除以第二個數,所得餘數若不為零,則用除數處以餘數,一直除到餘數為零,這時這個餘數為零的除法式子的除數即為這兩個數的最大公約數。

eg:求3和98的公約數。

63/98=0……63

98/63=1……35

63/35=1……28

35/28=1……7

28/7=4……0

即7為63和98的最大公約數

**實現如下:

#include

#include

intmain()

printf

("%d\n"

, b)

;system

("pause");

return0;

}

結果如下:

2. 更相減損法

給定兩個數,用大數減去小數,若減數和差不相等,則比較減數和差的大小,用大的減小的,直至減數和差相等為止,此時的差(或是減數)就是這兩個數的公約數。

eg:求63和98的公約數。

98-63=35,63!=35

63-35=28,35!=28

35-28=7,28!=7

28-7=21,7!=21

21-7=14,7!=14

14-7=7,7=7

即7為63和98的公約數

**如下:

#include

#include

void

swap

(int

*i,int

*j)int

main()

printf

("%d\n"

, b)

;system

("pause");

return0;

}

結果如下:

求兩個數最大公約數

題目 寫乙個程式,求兩個正數的最大公約數。如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 第二種方法,輾轉相除法...