这题太水了,就是数组和质数的综合应用而已。。。质数判断加数组直接拿捏了好吗。。。
#include<iostream>
using namespace std;
bool a[1000001];
bool prime(int i){
if(i==1)return 0;
for(int j=2;j*j<=i;j++){
if(i%j==0)
return 0;
}return 1;
}
void set(int n){
for(int i=1;i<=n;i++){
if(prime(i))
a[i]=1;
}
}
int main(){
int m,n,l,r;
cin>>m>>n;
set(n);
while(m--){
cin>>l>>r;
if(l<1||r>n)
cout<<"Crossing the line\n";
else{
int cnt=0;
for(int i=l;i<=r;i++){
if(a[i])
cnt++;
}cout<<cnt<<endl;
}
}return 0;
}