본문 바로가기

코드포스

[Codeforces Round #815 (Div. 2)] A. Burenka Plays with Fractions

 

 


※. a/b = c/d 가 같다면 a*d = b*c도 성립해야한다. (이 경우 0)

※. 1인 경우는 a*d*x = b*c 이거나 a*d = b*c*x 여아한다. 이 때 x는 정수이므로 (a*d) % (b*c) == 0 이거나 (b*c) % (a*d) == 0 이여야한다.(이 경우 1)

※. a/b를 c/d와 같게 만들려면 a/b * (bc / ad)를 하면된다. 이 작업에서 두 분수는 무조건 같게 만들 수 있으므로 이 이상의 작업은 필요없다.(이 경우 2)

 


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.StringTokenizer;
 
public class Main {
	static long ans = 0;
 	public static void main(String[] args) throws IOException{
		// TODO Auto-generated method stub
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();		
		int T = Integer.parseInt(br.readLine());
		while(T --> 0) {
			StringTokenizer st = new StringTokenizer(br.readLine());
			//int n = Integer.parseInt(st.nextToken());
			//int k = Integer.parseInt(st.nextToken());
			//int n = Integer.parseInt(br.readLine());
			int[] arr = new int[4];
			for(int i = 0; i < 4; i++) {
				arr[i] = Integer.parseInt(st.nextToken());
			}
			long x = arr[0];
			long y = arr[1];
			x *= arr[3];
			y *= arr[2];
			if(x == y) {
				ans = 0;
			}
			else if(y != 0 && x % y == 0 || x != 0 && y % x == 0) {
				ans = 1;
			}
			else {
				ans = 2;
			}
			sb.append(ans).append('\n');
		}
		System.out.println(sb);
 	}
}