분수 줄이기
시간 제한1초메모리 제한256 MB
분수 a/b에 대해 역수와 부호 반전, 1 더하기 연산만으로 0에 도달하는 최소 연산 횟수를 1e9+7로 나눈 나머지로 구하고, 불가능하면 -1을 출력한다.
문제
Chiaki에게 분수 가 있다. 이 분수는 기약분수가 아니어도 된다. Chiaki는 다음 두 연산을 할 수 있다.
- 현재 분수가 일 때, 로 바꿀 수 있다.
- 현재 분수가 일 때, 로 바꿀 수 있다.
Chiaki는 를 으로 만들기 위해 필요한 최소 연산 횟수를 알고 싶어 한다. 이 수는 매우 클 수 있으므로 로 나눈 나머지를 구한다.
입력
여러 개의 테스트 케이스가 주어진다. 입력의 첫째 줄에는 테스트 케이스의 개수 가 주어진다. () 각 테스트 케이스는 다음과 같다.
첫째 줄에 두 정수 와 가 주어진다. () 이는 분수를 나타낸다.
출력
각 테스트 케이스마다 를 으로 만들기 위한 최소 연산 횟수를 로 나눈 나머지를 출력한다. 으로 만들 수 없다면 을 출력한다.
힌트
1번째 예제에서는 연산이 필요하지 않다.
2번째 예제에서 가능한 수열의 한 예는 이다.
3번째 예제에서 가능한 수열의 한 예는 이다.
4번째 예제에서 가능한 수열의 한 예는 이다.
5번째 예제에서 가능한 수열의 한 예는 이다.