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 \(ơ\). Câu trả
lời cho truy vấn \(l_i, r_i\) là tổng \(\sum_{p \in S(l_i,r_i)} f(p)\), trong đó \(S(l_i,r_i)\) 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\le n \le 10^5)\)
-
Dòng thứ 2 chứa n số nguyên dương \(x_1, x_2, ..., x_n (2 \le x_i \le 10^7)\)
-
Dòng thứ 3 chứa số nguyên \(m (1 \le m \le 50000)\). Mỗi dòng \(i\) trong \(m\) dòng sau
chứa 2 số nguyên ngăn cách bởi 1 dấu cách \(l_i, r_i\) \((2 \le l_i \le r_i \le 2\times 10^9 )\)
Output
- Gồm \(m\) dòng, mỗi dòng 1 số nguyên là câu trả lời cho một truy vấn.
Example
Test 1
Input
6
5 5 7 10 14 15
3
2 10
3 12
4 4
Output
9
7
0
Note
3 truy vấn
- 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 → không có số nguyên tố.
Bình luận
truy vấn 1 trong test vị dụ bị ghi nhầm nhé, l = 2 r = 11 nhưng trong test ghi là l = 2 r = 10
3 bình luận nữa