Problem A: 统计质数
Memory Limit:512 MB
Time Limit:1.000 S
Judge Style:Text Compare
Creator:
Submit:24
Solved:2
Description
“2,3,5,7……1311,1917……”
“冷静,我得心平气和地思考才行,此时我该如何是好呢?”
“我得冷静下来……数质数向来都能让我冷静下来……”
“质数是只有 1 及自己能够整除的孤独数字……这些数字一直带给我莫
“冷静,我得心平气和地思考才行,此时我该如何是好呢?”
“我得冷静下来……数质数向来都能让我冷静下来……”
“质数是只有 1 及自己能够整除的孤独数字……这些数字一直带给我莫
大的勇气……”
David Tao 是一个高中生,闲来无事时他在纸上写下了 n 个正整数,并定义函数
cnt(p) 表示这 n 个数中能被质数 p 整除的数的个数。而对于一个不是质数的数 a,定义
cnt(a) 的值为 0。
现在 David 想询问:这个函数在某一段区间上的取值之和,即对于一组给定的 L R,
∑R i=L cnt(i) 等于多少。询问共有 m 组。
Input
第一行包含两个正整数 n 和 m,分别表示写下的数的数量,以及询问组数。
第二行包含 n 个正整数,表示 n 个数的值。
接下来 m 行,每行包含两个正整数 L 和 R,表示提出询问的区间。
第二行包含 n 个正整数,表示 n 个数的值。
接下来 m 行,每行包含两个正整数 L 和 R,表示提出询问的区间。
Output
输出共 m 行,每行包含一个正整数,表示每组询问的答案,由于答案可能很大,只
需要输出其对 109 + 7 取模后的结果即可。
需要输出其对 109 + 7 取模后的结果即可。
Sample Input Copy
5 3
4 6 7 9 11
2 3
1 4
1 5
Sample Output Copy
4
4
4
HINT
David 一共写下了 5 个数:4, 6, 7, 9, 11,并进行了 3 次询问:
- [2, 3] 区间中有两个质数 2 和 3,其中 2 能够整除 4 和 6,故 cnt(2) = 2,而 3 能够
整除 6 和 9,故 cnt(3) = 2,所以 ∑3i=2 cnt(i) = 4。
- [1, 4] 区间中也只有两个质数 2 和 3,故这一问答案和上一问相同,即 ∑4i=1 cnt(i) = 4。
- [1, 5] 区间中有三个质数 2, 3 和 5,但是 5 不能整除任何一个数,故 cnt(5) = 0,故
- [2, 3] 区间中有两个质数 2 和 3,其中 2 能够整除 4 和 6,故 cnt(2) = 2,而 3 能够
整除 6 和 9,故 cnt(3) = 2,所以 ∑3i=2 cnt(i) = 4。
- [1, 4] 区间中也只有两个质数 2 和 3,故这一问答案和上一问相同,即 ∑4i=1 cnt(i) = 4。
- [1, 5] 区间中有三个质数 2, 3 和 5,但是 5 不能整除任何一个数,故 cnt(5) = 0,故
这一问答案和前两问相同,即 ∑5 i=1 cnt(i) = 4。
对于 100% 的数据,保证 David 写下的数不大于 107,且 1 ⩽ L ⩽ R ⩽ 107。
测试点数量 n ⩽ m ⩽
20% 10 106
10% 1000 10
20% 1000 106
15% 106 10
25% 106 106
此外共有 35% 的数据,保证 R − L ⩽ 50。