文章

素数筛

素数筛

素数筛

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <bits/stdc++.h>
using namespace std;
const int N =1e6+7;
int vis[N],prime[N];
int main()
{
    int n,c=0;
    scanf("%d",&n);
    for(int i=2;i<=n;i++)
    {
        if(!vis[i])prime[++c]=i;
        for(int j=1;prime[j]<=n/i;j++){
            vis[prime[j]*i]=1;
            if(i%prime[j]==0)break;
        }
    }
    printf("%d",c);
    return 0;
}
本文由作者按照 CC BY 4.0 进行授权