/*
* 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;
}
hdu how many prime numbers 筛选法求素数
最新推荐文章于 2019-04-26 10:32:11 发布