K개의 값이 각자의 구간에서 균등하게 독립적으로 선택될 때, 선택된 수들의 최대공약수의 기댓값을 유리수로 구해 10^9+7로 나눈 값을 출력합니다.
크기가 KKK인 두 수열 AAA와 BBB가 주어진다. 수열 XXX는 AAA와 BBB로 만들며, XiX_iXi는 AiA_iAi 이상 BiB_iBi 이하인 정수 중 하나를 같은 확률로 뽑은 값이다. 각 XiX_iXi는 서로 독립으로 뽑는다.
수열 AAA와 BBB가 주어졌을 때, gcd(X0,X1,…,XK−1)\gcd(X_0, X_1, \dots, X_{K-1})gcd(X0,X1,…,XK−1)의 기댓값을 구하는 프로그램을 작성하시오.
첫째 줄에 테스트 케이스의 개수 TTT (1≤T≤501 \le T \le 501≤T≤50)가 주어진다.
각 테스트 케이스의 첫째 줄에는 KKK (2≤K≤52 \le K \le 52≤K≤5)가 주어진다. 다음 KKK개의 줄에는 AiA_iAi와 BiB_iBi가 공백으로 구분되어 한 줄에 하나씩 주어진다. (1≤Ai≤Bi≤2000001 \le A_i \le B_i \le 2000001≤Ai≤Bi≤200000)
각 테스트 케이스마다 한 줄에 답을 하나씩 출력한다.
기댓값을 기약분수로 나타낸 결과가 P/QP/QP/Q일 때, P+Q×NP + Q \times NP+Q×N이 109+710^9+7109+7로 나누어떨어지는 NNN (0≤N≤109+60 \le N \le 10^9+60≤N≤109+6)을 출력한다. 그런 NNN이 없으면 −1-1−1을 출력한다.