피보나치 수열은 F0=0, F1=1이고 n≥2일 때 Fn=Fn−1+Fn−2로 정의한다. 앞부분을 늘어놓으면 0, 1, 1, 2, 3, 5, 8, 13, 21로 이어진다.
점화식을 풀면 일반항은 다음과 같다.
Fn=51{(21+5)n−(21−5)n}
피보나치 수열은 성질이 많다. 예를 들어 다음 두 식이 성립한다.
∑i=1nFi=Fn+2−1,Fn∣Fkn(k=0,1,2,…)
이 문제에서는 두 피보나치 수의 최대공약수를 구한다. 두 정수 N, M이 주어지면 gcd(FN,FM)을 계산한다. 값이 매우 크므로 109+7로 나눈 나머지를 출력한다. 나머지는 최대공약수를 구한 뒤에 취한다.
첫째 줄에 테스트 케이스의 개수 T가 주어진다. (1≤T≤1000)
다음 T개의 줄에 각각 두 정수 N, M이 공백 하나로 구분되어 주어진다. (0<N,M≤109)
각 테스트 케이스마다 gcd(FN,FM)을 109+7로 나눈 나머지를 한 줄에 하나씩 출력한다.