문제링크
유클리드 호제법을 통해 최대공약수를 구현하고 최소공배수를 구하는 문제
최소 공배수는 두 수의 곱을 최대공약수로 나눈 값으로 구할 수 있다.
제출코드
#include <iostream>
using namespace std;
// https://www.acmicpc.net/problem/5347
long long gcd(long long a, long long b);
long long lcm(long long a, long long b);
int main() {
long long a, b;
long long n;
cin >> n;
while (n--)
{
cin >> a >> b;
cout << lcm(a, b) << '\n';
}
return 0;
}
long long gcd(long long a, long long b)
{
long long A, B;
if (a > b)
{
A = a;
B = b;
}
else
{
A = b;
B = a;
}
if (B == 0)
{
return A;
}
return gcd(B, A % B);
}
long long lcm(long long a, long long b)
{
return (a * b) / gcd(a, b);
}
'알고리즘 > 백준풀이' 카테고리의 다른 글
[백준/C++] 1912번 연속합 (0) | 2024.11.14 |
---|---|
[백준/C++] 2178번 미로 탐색 (0) | 2024.11.14 |
[백준/C++] 1931번 회의실 배정 (0) | 2024.11.13 |
[백준/C++] 1927번 최소 힙 (0) | 2024.11.13 |
[백준/C++] 11279번 최대 힙 (2) | 2024.11.02 |