x, y
와 동일한 숫자를 만들어야 한다.x
가 M
만큼 증가 할 때 다시 x
가 된다.x
를 M
만큼 증가 시킨 값을 n
으로 나눈 나머지가 y
인 값을 구한다.n, m
의 곱까지 진행해준다.for _ in range(int(input())):
m, n, x, y = map(int, input().split())
x -= 1 # caculate easily
y -= 1
standard = x
while standard < n * m:
if standard % n == y:
print(standard + 1)
break
standard += m
if standard % n != y:
print(-1)
최소공배수
와 최대공약수
를 구하는 방법은 알고있도록 하자.