hdu how many prime numbers 筛选法求素数

来源:互联网 发布:仓鼠翻译软件 编辑:程序博客网 时间:2024/06/01 03:58
/** hdu How many prime numbers* date 2014/5/13* state AC*/#include <iostream>#include <cmath>#include <cstdio>using namespace std;bool isPrime(int x){    int sqr=sqrt(x*1.0);    for(int i=2;i<=sqr;i++)    {        if(x%i==0)return false;    }    return true;}//筛选法void choosePrime(){    memset(prime,false,sizeof(prime));    prime[1]=true;//true 表示合数,false表示素数    for(int i=2;i*i<=10000;i++)    {        if(prime[i]==false)//i为素数,那么他的倍数都是合数            for(int j=i*2;j<=10000;j+=i)//j是i的倍数            prime[j]=true;    }    //now prime 数组中,凡是为false的都是素数     //判断某个数x是否为素数,只需要判断prime[x]==false}int main(){    //cout << "Hello world!" << endl;    int N;    int counter=0;    //cin>>N;    while(scanf("%d",&N)!=EOF)    {        counter=0;        for(int i=0;i<N;i++)        {            int t;            cin>>t;            //counter=0;            if(isPrime(t)==true)counter++;        }        cout<<counter<<endl;    }    return 0;}

0 0
原创粉丝点击