求兩個數的最大公約數
幾個整數中公有的約數,叫做這幾個數的公約數;其中最大的乙個,叫做這幾個數的最大公約數。
法1.窮舉法(不斷的拿需要求解的數進行除法運算,依次迴圈從而找到對應的能整除的數值)
#define _crt_secure_no_warnings
#include
#include
intmain()
}printf
("最大公約數是: %d\n"
,max)
;system
("pause");
return0;
}
執行結果:
法2.輾轉相除法
輾轉相除法:
輾轉相除法是求兩個自然數的最大公約數的一種方法,也叫歐幾里德演算法。
演算法簡介:
歐幾里德演算法是用來求兩個正整數最大公約數的演算法。是由古希臘數學家歐幾里德在其著作《the elements》中最早描述了這種演算法, 所以被命名為歐幾里德演算法
具體執行步驟:
有兩整數a和b:
1.a%b得餘數c
2. 若c = 0,則b即為兩數的最大公約數
3.若c≠0,則a = b,b = c,再回去執行
#define _crt_secure_no_warnings
#include
#include
intmain()
printf
("最大公約數是: %d\n"
,b);
system
("pause");
return0;
}
執行結果:
拓展:如何理解最大公約數和最小公倍數
最大公約數:
幾個整數中公有的約數,叫做這幾個數的公約數;其中最大的乙個,叫做這幾個數的最大公約數。
最小公倍數:
兩個或多個整數公有的倍數叫做它們的公倍數,其中除0以外最小的乙個公倍數就叫做這幾個整數的最小公倍數
其基於的原理是:
兩個數的最小公倍數會等於兩個數的乘積除以兩個數的最大公約數的結果。
利用輾轉相除法,求解最大公約數和最小公倍數
#define _crt_secure_no_warnings
#include
#include
intmain()
printf
("最大公約數是: %d\n"
,b);
printf
("最小公倍數是: %d\n"
,ret/b)
;system
("pause");
return0;
}
最大公約數 最小公倍數
求最大公約數最直接的辦法是從兩數中較小數與2之間的所有整數中乙個乙個的找。但這個方法有點浪費。有兩種有名的方法 1.輾轉相除法2.更相減損之術這兩種方法比較有名,而且現在人教版的高中數學中已經介紹了這兩種方法。下面這個是第2個,因為它只需要加減法就可以,效率高。int maxfactor unsig...
最小公倍數 最大公約數
求最小公倍數演算法 最小公倍數 兩整數的乘積 最大公約數 求最大公約數演算法 1 輾轉相除法 有兩整數a和 b a b得餘數c 若c 0,則 b即為兩數的最大公約數 若c 0,則 a b,b c,再回去執行 例如求27和 15的最大公約數過程為 27 15 餘12 15 12餘3 12 3餘0 因此...
最大公約數,最小公倍數
兩個數最大公約數 輾轉相除法 在數學中,輾轉相除法,又稱歐幾里得演算法,是求最大公約數的演算法。兩個整數的最大公約數是能夠同時整除它們的最大的正整數。輾轉相除法基於如下原理 兩個整數的最大公約數等於其中較小的數和兩數的差的最大公約數。例如 用 a,b 來表示a和b的最大公約數。已知a,b,c為正整數...