Nasser te da un arreglo de longitud .
Se te dan consultas. Cada consulta contiene dos enteros y .
Para cada consulta, debes contar la cantidad de tripletas (i, j, k) tales que:
1 \le i < j < k \le n
l \le \gcd(a[i], a[j], a[k]) \le r
Como la respuesta puede ser muy grande, imprímela módulo 10^9 + 7.
Cada test contiene múltiples casos de prueba. La primera línea contiene un único entero (1 \le t \le 10^4) — la cantidad de casos de prueba. A continuación sigue la descripción de los casos de prueba.
La primera línea de cada caso de prueba contiene dos enteros y (3 \le n \le 2 \cdot 10^5, 1 \le q \le 2 \cdot 10^5).
La segunda línea de cada caso de prueba contiene enteros a_1, a_2, \ldots, a_n (1 \le a_i \le n) — los elementos del arreglo.
Cada una de las siguientes líneas contiene dos enteros y (1 \le l \le r \le n).
Se garantiza que la suma de sobre todos los casos de prueba no excede 2 \cdot 10^5, y que la suma de sobre todos los casos de prueba no excede 2 \cdot 10^5.
Para cada consulta, imprime un único entero — la cantidad de tripletas (i, j, k) cuyo está en [l, r], módulo 10^9 + 7.
Ejemplo 1
En el primer caso de prueba, n=6, q=2, a=[2,3,2,5,6,6]:
Consulta : l=2, r=4. Necesitamos tripletas (i,j,k) donde 2 \le \gcd(a_i, a_j, a_k) \le 4.
(1,3,5): \gcd(2,2,6)=2. Válida.
(1,3,6): \gcd(2,2,6)=2. Válida.
(1,5,6): \gcd(2,6,6)=2. Válida.
(3,5,6): \gcd(2,6,6)=2. Válida.
(5,6,?): Necesitamos un tercer elemento. \gcd(6,6,2)=2, \gcd(6,6,3)=3.
(2,5,6): \gcd(3,6,6)=3. Válida.
Hay tripletas válidas. La respuesta es .
Consulta : l=3, r=4. Necesitamos tripletas (i,j,k) donde 3 \le \gcd(a_i, a_j, a_k) \le 4.
(2,5,6): \gcd(3,6,6)=3. Válida.
Hay tripleta válida. La respuesta es .
Subtarea ( puntos) : (3 \le \sum n \le 50, 1 \le \sum q \le 50)
Subtarea ( puntos) : (3 \le \sum n \le 500, 1 \le \sum q \le 500)
Subtarea ( puntos) : (3 \le \sum n \le 2000, 1 \le \sum q \le 2000)
Subtarea ( puntos) : Sin restricciones adicionales.