最大公因数、最小公倍数求法(C++)

用辗转相除法求最大公因数

辗转相除法的流程图如下:
其中,输入保证a>b。
最大公因数、最小公倍数求法(C++)_第1张图片
参考代码如下:

#include 
using namespace std;

int main(){
	int a, b;
	cin >> a >> b;
	// 假设确保 a > b 
	while(a % b != 0){
		int c = a % b;
		a = b;
		b = c;
	}
	cout << b << endl;
	return 0;
} 

特别的,如果能用头文件algorithm的话,可以直接使用__gcd(int a, int b)函数来算最小公因数。我用的dev-c++是可以跑的通的。
参考代码如下:

#include 
#include 
using namespace std;

int main(){
	int a, b;
	cin >> a >> b;
	int n = __gcd(a, b);
	cout << n << endl;
	return 0;
} 

最小公倍数

最小公倍数可以通过求得的最大公因数来计算。
最小公倍数=a*b/最大公因数

你可能感兴趣的:(OJ学习)