만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

Grand Prix of Array Count

시간 제한1초메모리 제한2048 MB

요약
길이가 n이고 원소가 1부터 k까지인 배열 중, i+j가 짝수인 모든 (i, j)에 대해 a[(i+j)/2]가 gcd(a[i], a[j])와 같은 배열의 개수를 10^9+7로 나눈 나머지로 구합니다.
난이도

어려움10점 중 9점

유형
수학, 정수론, 조합론
정답자
아직 제출이 없습니다

문제

길이가 nn인 배열 aa에서, 1≤i,j≤n1 \le i, j \le n을 만족하는 모든 인덱스 쌍 (i,j)(i, j)에 대해 다음 조건이 성립하면 이 배열을 funny 배열이라고 한다. i+ji+j가 짝수이면 a(i+j)/2=gcd(ai,aj)a_{(i+j)/2} = \mathrm{gcd}(a_i, a_j)이다. 예를 들어 배열 [6,2,2,2,4][6,2,2,2,4]는 funny 배열이다.

두 양의 정수 nn과 kk가 주어진다. 원소가 모두 11 이상 kk 이하인 정수로 이루어진 길이 nn의 funny 배열의 개수를 구하라. 이 값은 매우 클 수 있으므로 109+710^9+7로 나눈 나머지를 출력하라.

입력

첫 줄에 두 정수 nn과 kk가 주어진다 (5≤n≤10125 \le n \le 10^{12}, 2≤k≤10122 \le k \le 10^{12}).

출력

문제의 답을 109+710^9+7로 나눈 나머지 하나를 출력하라.

힌트

첫 번째 테스트에서 funny 배열은 44개다. 그 배열은 [1,1,1,1,1][1,1,1,1,1], [1,1,1,1,2][1,1,1,1,2], [2,1,1,1,1][2,1,1,1,1], [2,2,2,2,2][2,2,2,2,2]이다.

예제2

  1. 예제 1

    입력
    5 2
    
    예상 출력
    4
    
  2. 예제 2

    입력
    32 5
    
    예상 출력
    32