아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

최대공약수의 기댓값

시간 제한2초메모리 제한512 MB

요약
K개의 값이 각자의 구간에서 균등하게 독립적으로 선택될 때, 선택된 수들의 최대공약수의 기댓값을 유리수로 구해 10^9+7로 나눈 값을 출력합니다.
난이도

어려움10점 중 9점

유형
확률, 수학, 정수론, 동적 계획법
정답자
아직 제출이 없습니다

문제

크기가 KK인 두 수열 AA와 BB가 주어진다. 수열 XX는 AA와 BB로 만들며, XiX_i는 AiA_i 이상 BiB_i 이하인 정수 중 하나를 같은 확률로 뽑은 값이다. 각 XiX_i는 서로 독립으로 뽑는다.

수열 AA와 BB가 주어졌을 때, gcd⁡(X0,X1,…,XK−1)\gcd(X_0, X_1, \dots, X_{K-1})의 기댓값을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 테스트 케이스의 개수 TT (1≤T≤501 \le T \le 50)가 주어진다.

각 테스트 케이스의 첫째 줄에는 KK (2≤K≤52 \le K \le 5)가 주어진다. 다음 KK개의 줄에는 AiA_i와 BiB_i가 공백으로 구분되어 한 줄에 하나씩 주어진다. (1≤Ai≤Bi≤2000001 \le A_i \le B_i \le 200000)

출력

각 테스트 케이스마다 한 줄에 답을 하나씩 출력한다.

기댓값을 기약분수로 나타낸 결과가 P/QP/Q일 때, P+Q×NP + Q \times N이 109+710^9+7로 나누어떨어지는 NN (0≤N≤109+60 \le N \le 10^9+6)을 출력한다. 그런 NN이 없으면 −1-1을 출력한다.

예제2

  1. 예제 1

    입력
    4
    2
    2 4
    3 5
    3
    1 2
    1 2
    1 2
    3
    1 12
    1 12
    1 12
    2
    2700 2701
    2612 2724
    
    예상 출력
    333333334
    875000005
    722222226
    314159265
    
  2. 예제 2

    입력
    3
    2
    1 1
    5 5
    2
    4 4
    6 6
    3
    1 3
    2 4
    3 5
    
    예상 출력
    1000000006
    1000000005
    518518521