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;
}
}
해설
유클리드 호제법을 이용해 최대 공약수, 최소 공배수를 구한 뒤 정답을 출력해주었다.
느낀점
어제 풀었던 문제보다 쉬웠다.
'백준 코딩테스트 > 실버' 카테고리의 다른 글
11659) 구간 합 구하기 4 (C++) (0) | 2022.05.25 |
---|---|
3036) 링 (C++) (0) | 2022.05.24 |
2609) 최대공약수와 최소공배수 (C++) (0) | 2022.05.22 |
2693) N번째 큰 수 (C++) (0) | 2022.05.21 |
11478) 서로 다른 부분 문자열의 개수 (C++) (0) | 2022.05.17 |