首页 > 代码库 > hdu how many prime numbers 筛选法求素数
hdu how many prime numbers 筛选法求素数
/* * 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; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。