1015_最大公约数和最小公倍数

最大公约数和最小公倍数

时间限制(普通/Java) :  1000 MS/ 3000 MS          运行内存限制 : 65536 KByte
总提交 : 2020            测试通过 : 993 

比赛描述

求两个正整数的最大公约数和最小公倍数



输入

两个正整数AB

输出

两个正整数的最大公约数、最小公倍数

样例输入

4  3

样例输出

1 12

题目来源

NUPT



思路:辗转相除法求最大公约数,两数据相乘除以最大公约数是最小公倍数。

代码如下:

#include <iostream>
using namespace std;

unsigned int Gbs(unsigned int a, unsigned int b);	//求最大公约数
int main()
{
	int a, b;
	cin >> a >> b;
	if (a < b)
	{
		a = a + b;
		b = a - b;
		a = a - b;
	}
	cout << Gbs(a, b) << " " << a*b / Gbs(a, b) << endl;
	return 0;
}

unsigned int Gbs(unsigned int a, unsigned int b)
{
	while (b > 0)
	{
		int temp = a;
		a = b;
		b = temp%b;
	}
	return a;
}



你可能感兴趣的:(C++,最大公约数和最小公倍数,南邮OJ,1015)