Problem1325--22-数组-3-孪生素数对

1325: 22-数组-3-孪生素数对

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 128 MB

Description

如果n和n+2都是素数,我们称其为孪生素数,比如3和5,5和7都是孪生素数。 小南接到一个任务,就是对一个给定的区间[a,b],统计该区间有多少对孪生素数?
例如:[1,3]之间只有素数2和3,间距为1而不是2,所以孪生素数对的个数为0;
          [3,7]之间有素数3,5和7,所以孪生素数对的个数为2。
一个简单的方法是对输入的每一组[a,b],用穷举的方法对n和n+2进行素数判定再统计,多样例的情况下有可能会超时哦。所以小南需要用到预处理和筛选素数的方法对算法进行优化,你能帮他优化吗?

Input

多样例。输入的第一行是一个整数k(k≤ 10000),表示样例的个数。 以后每行一个样例,为两个整数a和b,表示区间[a,b](1≤a≤b≤5000000)。

Output

每行输出一个样例的结果。

Sample Input Copy

6
1 3 
4 7
1 10 
1 100 
1 1000 
1 5000000

Sample Output Copy

0 
1
2 
8 
35 
32463

HINT

数组定义中int a[5000005]不会超限。

Source/Category