https://www.acmicpc.net/problem/6064
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int n = Integer.parseInt(br.readLine());
while (n-->0){
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
int x = Integer.parseInt(st.nextToken());
int y = Integer.parseInt(st.nextToken());
if(N == x) x = 0;
if(M == y) y = 0;
int max = 0;
if(N >= M) max = LCM(N , M);
else max = LCM(M , N);
if(x == 0 && y == 0){
sb.append(max).append("\n");
continue;
}
boolean flag = true;
for (int i = x; i <= max; i+= N) {
if(i % M == y){
sb.append(i).append("\n");
flag = false;
break;
}
}
if(flag) sb.append("-1").append("\n");
}
System.out.println(sb);
}
public static int GCD(int a, int b){
if(b == 0) return a;
return GCD(b, a % b);
public static int LCM(int a, int b){
return a * b / GCD(a, b);
}
}
'Algorithm > Baekjoon Online Judge' 카테고리의 다른 글
[Java] [Math] 백준 11051 이항 계수 2 실버2 (0) | 2024.05.04 |
---|---|
[Java] [Math] 백준 11050 이항 계수 브론즈1 (0) | 2024.05.04 |
[Java] [Math] 백준 11653 소인수 분해 브론즈1 (0) | 2024.05.04 |
[Java] [Math] 백준 1929 소수 구하기 실버3 (0) | 2024.05.04 |
[Java] [Math] 백준 1978 소수 찾기 브론즈2 (0) | 2024.05.04 |