코딩테스트/Baekjoon

[백준 #2702] 초6 수학 (C++)

동띵 2021. 9. 3. 18:45

https://www.acmicpc.net/problem/2702

 

2702번: 초6 수학

첫째 줄에 테스트 케이스의 개수 T(1<=T<=1,000)가 주어진다. 각 테스트 케이스는 두 정수 a와 b로 이루어져 있고, 공백으로 구분되어 있다. (1 <= a,b <= 1,000)

www.acmicpc.net

 

최대공약수는 유클리드 호제법 공식으로 풀고,

최소공배수는 최대공약수를 이용해서 풀었다.

 

#include <iostream>
using namespace std;

int gcd(int a, int b) {
	if (b == 0) {
		return a;
	}
	else {
		return gcd(b, a % b);
	}
}

int lcm(int a, int b) {
	int n = gcd(a, b);
	return n * (a / n) * (b / n);
}

int main() {
	ios::sync_with_stdio(false);
	cin.tie(NULL);

	int t, a, b;
	
	cin >> t;
	for (int i = 0; i < t; i++) {
		cin >> a >> b;
		cout << lcm(a, b) << " " << gcd(a, b) << "\n";
	}

	return 0;
}