0005 - GCD and LCM / AizuOnlineJudge

問題 : 最大公約数と最小公倍数 | Aizu Online Judge

#include <algorithm>
#include <iostream>
using namespace std;

int GCD(int a, int b)	{
	return (b > 0)? GCD(b,a%b) : a;
}

int LCM(int a, int b)	{
	return a/GCD(a,b)*b;
}

void Solve(int a, int b)	{
	if (a < b)	swap(a,b);
	cout << GCD(a,b) << " " << LCM(a,b) << endl;
}

int main(void)	{
	int a, b;

	while (cin >> a >> b)
		Solve(a,b);
	return 0;
}

ユークリッドの互除法を用い答えを出力。
~了~