1.更相減損法
1)更相減損法:更相減損術, 出自於中國古代的《九章算術》,也是一種求最大公約數的算法。
①先判斷兩個數的大小,如果兩數相等,則這個數本身就 是就是它的最大公約數。
②如果不相等,則用大數減去小數,然後用這個較小數與它們相減的結果相比較,如果相等,則這個差就是它們的最大公約數,而如果不相等,則繼續執行②操作。
- 輾轉相除法
兩個正整數a和b(a>b),它們的最大公約數等於a除以b的餘數c和b之間的最大公約數。
①當兩個數相等時,其中任意一個就是它們的最大公約數,因爲它們的餘數爲0;
②當兩個數不相等時,用較大數除以較小數,當餘數不爲0時,這時 使較小數作爲被除數,餘數作爲除數,繼續 ②的操作,直至餘數爲0,也就是這兩個數相等時,其中任一數爲最大公約數。
程序實現
#include <iostream>
using namespace std;
int gcd(int a, int b){
return b == 0? a:gcd(b, a%b);
}
int main(void){
int a = 10, b = 6;
int g = gcd(a, b);
cout<<"最大公約數爲:"<<gcd(a,b)<<" 最小公倍數爲:"<<a*b/gcd(a,b);
return 0;
}