C++ 最大公約數和最小公倍數

1.更相減損法

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;
} 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章