歐幾里得演算法:輾轉求餘
原理: gcd(a,b)=gcd(b,a mod b)
當b為0時,兩數的最大公約數即為a
注意:公約數的定義:點選跳轉
由定義可知,0不在公約數範圍內。所以0和其它數字沒有公約數。那0和乙個整數的最小公倍數是多少?其實一般是不考慮0的,如果非要考慮,最小公倍數=0。
拓展:三個數的最小公倍數求法是求完兩個數的最小公倍數後得出的數再和第三個數求,就是求兩次兩個數的最小公倍數。
原始碼:
1/*歐幾里得演算法:輾轉求餘
2原理: gcd(a,b)=gcd(b,a mod b)
3當b為0時,兩數的最大公約數即為a */4
//------------------------分 隔 符---------------------------
5 # include6 # include7
intmain()
17//
定義乙個函式:最大公約數gcd(a,b)
18int
gcd(a,b)
24return
(a);25}
26
求兩個數最大公約數
題目 寫乙個程式,求兩個正數的最大公約數。如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 第二種方法,輾轉相除法...