Please check my code
#include
using namespace std;
#define ll long long
void PrimeSieve(int *a){
for (int i=3;i<=1000000;i+=2){
a[i]=1;
}
for (ll int i=3;i<=1000000;i+=2){
if (a[i]==1){
for(ll int j=i*i;j<=1000000;j=j+i){
a[j]=0;
}
}
}
a[2]=1;
a[1]=a[0]=0;
}
int main(){
int a[1000005]={0};
PrimeSieve(a);
int csum[1000005]={0};
for(int i=1;i<=1000000;i++){
csum[i]=csum[i-1]+a[i];
}
int t;
cin>>t;
for(int i=0;i<t;i++){
int p;
int q;
cin>>p>>q;
cout<<csum[q]-csum[p];
}
return 0;
}