#include <bits/stdc++.h>
using namespace std;
int main() {
const int maxn = 1000005;
bool prime[maxn];
int pre[maxn];
int n;
cin >> n;
//先将所有定义为质数
for(int i = 0;i < maxn;i++){
prime[i] = true;
}
//数组第一位和数字1去掉
prime[0] = prime[1] = false;
//将质数的倍数去掉,从2开始
for(int i = 2;i < maxn;i++){
if(prime[i]){
for(int j = i+i;j < maxn;j += i){
prime[j] = false;
}
}
}
//前缀和
pre[0] = 0;
for(int i = 1;i < maxn;i++){
pre[i]=pre[i-1]+(prime[i]?1:0);
}
//区间查询
int ans = 0;
for(int i = 1;i <= n;i++){
int l,r;
cin >> l>> r;
ans = pre[r] - pre[l-1];
cout<<ans<<endl;
}
}