@[LukeSu](/user/593753) 前缀和
```cpp
#include <bits/stdc++.h>
bool a[100000010];
int sum[1000005],prime[6000010], cnt = 0;
void ou_la_shai( int n ) {
memset ( a , true , sizeof( a ) ) ;
register int i , j , w = 0 , k ;
for ( i = 2 ; i < n ; i++ ) {
if ( a[ i ] ) prime[ ++w ] = i ;
for ( j = 1 , k = i * prime[ j ] ; j <= w && k <= n ; j++ , k = i * prime[ j ] ) {
a[ k ] = false ;
if(i%prime[j]==0)break;
}
sum[i]=sum[i-1]+a[i];
}
}
int main(){
ou_la_shai(1000005);
int n,m;
scanf("%d %d",&n,&m);
for(int i=1;i<=n;i++){
int l,r;
scanf("%d %d",&l,&r);
if(l<1||r>m)puts("Crossing the line");
else printf("%d\n",sum[r]-sum[l-1]);
}
return 0;
}
```
by Etinorally @ 2022-05-04 11:12:33
@[bye_wjx](/user/575994)
谢谢佬,已解决!
by LukeSu @ 2022-05-04 11:39:20