백준 c++/코테준비-기초 c++

백준 6064 c++ 카잉달력

현구구 2024. 7. 9. 12:21

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