最一般的筛素数法

 1 int countPrimes(int n) {
 2         vector<bool> prime(n,true);
 3         prime[1]=prime[0]=false;
 4         for(int i=3;i<n;i++)
 5             if(i%2==0)
 6                 prime[i]=false;
 7         
 8         for(int i=3;i<sqrt(n);i++)
 9             if(prime[i])
10                 for(int j=i*i;j<n;j+=i)
11                     prime[j]=false;
12         
13         return count(prime.begin(),prime.end(),true);
14     }
View Code

 

posted on 2015-07-10 22:23  GyyZyp  阅读(155)  评论(0编辑  收藏  举报

导航