最大公约数和最小公倍数


欧几里德算法又称辗转相除法, 用于计算两个整数a, b的最大公约数。其计算原理依赖于下面的定理:
定理: gcd(a, b) = gcd(b, a % b);

#include
using namespace std;

int gcd(int m, int n)
{
	if (m % n == 0)
		return n;
	else
		gcd(n, m%n);
}

int main()
{
	int m, n;
	cin >> m >> n;
	int a = gcd(m, n);
	int b = m * n / a;
	cout << "最大公因数为: " << a << " 最小公倍数为: " << b << endl;
	return 0;
}

相关