#OIS1015. 不一样的GCD

不一样的GCD

题目描述:

定义GCD(i,j)GCD(i,j)为数字ii,jj的最大公因数

众所周知,对于一般的GCDGCD问题,我们可以轻易的使用某种复杂度为lognlogn的算法算出.这种题对于一个身经百炼的ACMer简直是太简单啦.所以显然这道题与一般的GCDGCD问题不同

现在你的任务是求出下面式子的值:

f(i,j)=GCD(2i1,2j1)f(i,j)=GCD(2^i-1,2^j-1)

因为这个问题的答案可能很大,所以你最终的答案需要对1e9+7取模再输出

输入格式:

本题具有多组输入,第一行一个TT,表示接下来的输入数据总数

接下来TT行,每一行输入两个正整数i,ji,j,与题目中的对应所述含义相同

输出格式:

输出TT行,每一行表示对应的f(i,j)f(i,j)的值

输入输出样例:

输入#1

3
10 4
3 6
100 45

输出#1

3
7
31

数据范围:

对于100%100\%的测试点保证,T[1,1000],T\in[1,1000],i[1,1e18],j[1,1e18]i\in[1,1e18],j\in[1,1e18]