https://www.acmicpc.net/problem/6064
#include <iostream>
using namespace std;
int get_count;
int gcd(int x,int y) {
if (y > x)
{
int tmp = x;
x = y;
y = tmp;
}
while ((x % y) != 0)
{
x = x % y;
int tmp = x;
x = y;
y = tmp;
}
return y;
}
int lcm(int x,int y)
{
return x * y / gcd(x, y);
}
int main()
{
cin >> get_count;
while (get_count--)
{
int m, n, x, y;
cin >> m >> n >> x >> y;
int limit = lcm(m, n);
int result = -1;
for (int i = x; i <= limit; i = i + m)
{
if ((i-y)%n == 0)
{
result = i;
break;
}
}
cout << result << '\n';
}
}
'백준 c++ > 코테준비-기초 c++' 카테고리의 다른 글
백준 15650 c++ N과 M (2) (0) | 2024.07.09 |
---|---|
백준 15649 c++ N과 M (1) (0) | 2024.07.09 |
백준 9095 1, 2, 3 더하기 (0) | 2024.07.09 |
14500 - 테트로미노 (0) | 2024.06.24 |
1107 - 리모컨 c++ (0) | 2024.06.24 |