본문 바로가기
백준 코딩테스트/실버

1934) 최소공배수 (C++)

by xortl98 2022. 5. 23.
728x90

 출처 

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

 

1934번: 최소공배수

두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고 한다. 예를 들어, 6과 15의 공배수는 30, 60, 90등이 있

www.acmicpc.net

 내 풀이 

#include<iostream>

using namespace std;

int T = 0;
int A = 0, B = 0;

//최대 공약수
int gdc(int a, int b)
{
	if (a % b == 0) return b;
	else return gdc(b, a % b);
}

//최소 공배수
int lcm(int a, int b)
{
	return a * b / gdc(a, b);
}

int main()
{
	cin >> T;
	for (int i = 0; i < T; i++)
	{
		cin >> A >> B;

		cout << lcm(A, B) << endl;
	}
}

 해설

유클리드 호제법을 이용해 최대 공약수, 최소 공배수를 구한 뒤 정답을 출력해주었다.

 느낀점 

어제 풀었던 문제보다 쉬웠다.