求兩個數的最大公約數
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 第二種方法,輾轉相除法...