输出很怪
输入 #1
2 11
输出 #1
2 1
3 1
4 0
5 1
6 0
7 1
8 0
9 0
10 0
11 1
代码:
(欧拉筛)
#include<iostream>
#include<cmath>
#include<cstring>
using namespace std;
#define MAXN 2147483647
bool isprime[MAXN];
long long prime[MAXN];
long long l,r;
int sum;
long long cnt;
void euler()
{
memset(isprime, true, sizeof(isprime));
isprime[1] = false;
for(long long i = l; i <= r; ++i)
{
if(isprime[i]) prime[++cnt] = i;
for(long long j = 1; j <= cnt && i * prime[j] <= r; ++j){
isprime[i * prime[j]] = false;
if(i % prime[j] == 0) break;
}
}
}
int main(){
cin>>l>>r;
euler();
for(long long i=l;i<=r;i++){
if(isprime[i]==1)sum++;
}
cout<<sum;
}