BJTU 1188 素数筛选

http://acm.bjtu.edu.cn/problem/detail?pid=1188

百万级素数筛选,果断埃斯托拉尼筛法

View Code
#include <stdio.h>

int prime[1000001];

int ans[1000001]={0,0,1};

int main()

{

    int i,j,n;

    for(i=2;i*i<=1000000;i++)

        if(!prime[i])

            for(j=i;j*i<=1000000;j++)

                prime[j*i]=1;

    for(i=3;i<=1000000;i++)

        if(!prime[i])

            ans[i]=ans[i-1]+1;

        else

            ans[i]=ans[i-1];

    while(~scanf("%d",&n))

        printf("%d\n",ans[n]);

    return 0;

} 

 

你可能感兴趣的:(素数)