Codeforces Round 330 (Div. 1)
D
REQ
Codeforces
2500
原题
← CE →
翻译中…

Today on a math lesson the teacher told Vovochka that the Euler function of a positive integer $φ(*n*)$ is an arithmetic function that counts the positive integers less than or equal to n that are relatively prime to n. The number $1$ is coprime to all the positive integers and $φ(1) = 1$.

翻译中…

Now the teacher gave Vovochka an array of $*n*$ positive integers $*a*_{1}, *a*_{2}, ..., *a*_{*n*}$ and a task to process $*q*$ queries $*l*_{*i*}$ $*r*_{*i*}$ — to calculate and print image modulo $10^{9} + 7$. As it is too hard for a second grade school student, you've decided to help Vovochka.

翻译中…

Input

翻译中…

The first line of the input contains number $*n*$ ($1 ≤ *n* ≤ 200 000$) — the length of the array given to Vovochka. The second line contains $*n*$ integers $*a*_{1}, *a*_{2}, ..., *a*_{*n*}$ ($1 ≤ *a*_{*i*} ≤ 10^{6}$).

翻译中…

The third line contains integer $*q*$ ($1 ≤ *q* ≤ 200 000$) — the number of queries. Next $*q*$ lines contain the queries, one per line. Each query is defined by the boundaries of the segment $*l*_{*i*}$ and $*r*_{*i*}$ ($1 ≤ *l*_{*i*} ≤ *r*_{*i*} ≤ *n*$).

翻译中…

Output

翻译中…

Print $*q*$ numbers — the value of the Euler function for each query, calculated modulo $10^{9} + 7$.

翻译中…

Note

翻译中…

In the second sample the values are calculated like that:

翻译中…
  • $φ(13·52·6) = φ(4056) = 1248$
  • $φ(52·6·10·1) = φ(3120) = 768$
  • $φ(24·63·13·52·6·10·1) = φ(61326720) = 12939264$
  • $φ(63·13·52) = φ(42588) = 11232$
  • $φ(13·52·6·10) = φ(40560) = 9984$
  • $φ(63·13·52·6·10) = φ(2555280) = 539136$
翻译中…

样例

Input #1
10
1 2 3 4 5 6 7 8 9 10
7
1 1
3 8
5 6
4 8
8 10
7 9
7 10
Output #1
1
4608
8
1536
192
144
1152
InputCopy OutputCopy
Input #2
7
24 63 13 52 6 10 1
6
3 5
4 7
1 7
2 4
3 6
2 6
Output #2
1248
768
12939264
11232
9984
539136
InputCopy OutputCopy
题目信息
题号
594D
时间限制
3 s
内存限制
256 MB
标签
数据结构
数论

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。