首页 > 代码库 > POJ 3978 Primes(素数筛选法)

POJ 3978 Primes(素数筛选法)

题目

 

简单的计算A,B之间有多少个素数

只是测试数据有是负的

 

//AC

//A和B之间有多少个素数//数据可能有负的!!!#include<string.h>#include<stdio.h>//素数筛选法int pri[100000+10];//1 合数, 0 素数void Prime(){    memset(pri,0,sizeof(pri));    pri[1]=pri[0]=1;    for(int i=2;i<50002;i++)    {        if(pri[i]==0)            for(int j=i+i;j<100010;j=j+i)                pri[j]=1;    }}int main(){    int a,b;    Prime();    while(scanf("%d%d",&a,&b)!=EOF)    {        if(a==-1&&b==-1)break;        int ans=0;        if(a<0)a=0;        if(b<0)b=0;        for(int i=a;i<=b;i++)        {            if(pri[i]==0)                ans++;        }        printf("%d\n",ans);    }    return 0;}
View Code

 

 

 

//素数筛选法int pri[100000+10];//1 合数, 0 素数void Prime(){    memset(pri,0,sizeof(pri));    pri[1]=pri[0]=1;    for(int i=2;i<50002;i++)    {        if(pri[i]==0)            for(int j=i+i;j<100010;j=j+i)                pri[j]=1;    }}
素数筛选法