判断素数个数

· · 题解

判断素数个数

Prime

#include<bits/stdc++.h>
using namespace std;
int X,Y,cnt,ans,p[100001];
bool prime[100001];
int main() {
    cin>>X>>Y;
    if (X>Y)
        swap(X,Y);
    prime[1]=1;
    for(int i=2;i<=Y;i++)
    {
        if(!prime[i]) 
            p[++cnt]=i;
        for(int j=1;j<=cnt&&i*p[j]<=Y;j++)
        {
            prime[i*p[j]]=1;
            if(i%p[j]==0)
                break;
        }
    }
    for (int i=X;i<=Y;i++)
        if (!prime[i])
            ans++;
    cout<<ans<<endl;
    return 0;
}

题目来源 (节选自20190801模拟赛)