Chú gấu ~Tommy~ là một chú gấu rất dễ thương. Một ngày nọ chú đến trường và được thầy dạy về những con số nguyên tố. Chú và các bạn vô cùng thích thú và lao vào tìm hiểu chúng. Thế nhưng, càng tìm hiểu sâu chú lại càng gặp phải những bài toán khó về số nguyên tố. Hôm nay thầy giao cho cả lớp một bài toán khó và yêu cầu cả lớp ai làm nhanh nhất sẽ được thầy cho bánh. Vì thế, để có bánh ăn, ~Tommy~ phải giải bài toán nhanh nhất có thể. Bài toán như sau:
Cho dãy ~n~ số nguyên dương ~x_1, x_2, …, x_n~ và ~m~ truy vấn, mỗi truy vấn được cho bởi ~2~ số nguyên ~l_i, r_i~. Cho một hàm ~f(p)~ trả về số lượng các số ~x_k~ là bội của ~p~. Câu trả lời cho truy vấn ~l_i, r_i~ là tổng ~\sum^{}_{𝑝∈𝑆(𝑙_𝑖,𝑟_𝑖)} 𝑓(𝑝)~, trong đó ~𝑆(𝑙_𝑖,𝑟_𝑖)~ là tập các số nguyên tố trong đoạn ~[l_i,r_i].~ Bạn hãy giúp chú gấu ~Tommy~ giải bài toán này nhé!
Input
- Dòng đầu tiên chứa số nguyên ~n~ ~(1≤ n ≤ 10^5)~.
- Dòng thứ hai chứa ~n~ số nguyên dương ~x_1, x_2, …, x_n~ ~(2 ≤ x_i ≤ 10^7)~.
- Dòng thứ ba chứa số nguyên ~m~ ~(1 ≤ m ≤ 50000)~. Mỗi dòng ~i~ trong ~m~ dòng sau chứa hai số nguyên ngăn cách bởi một dấu cách ~l_i, r_i~ (~2 ≤ l_i ≤ r_i ≤ 2*10^9~).
Output
- Gồm ~m~ dòng, mỗi dòng gồm một số nguyên là câu trả lời cho một truy vấn.
Sample Input 1
6
5 5 7 10 14 15
3
2 10
3 12
4 4
Sample Output 1
9
7
0
Giải thích: ~3~ truy vấn trong test ~1~:
- Truy vấn 1: ~l = 2, r = 11~. Ta cần tính: ~f(2) + f(3) + f(5) + f(7) + f(11) = 2 + 1 + 4 + 2 + 0 = 9.~
- Truy vấn 2: ~l = 3, r = 12~. Ta cần tính: ~f(3) + f(5) + f(7) + f(11) = 1 + 4 + 2 + 0 = 7.~
- Truy vấn 3: ~l = 4, r = 4 \rightarrow~ không có số nguyên tố.
Bình luận