标签:
求包含n的n以内所有质数,从第一个质数开始,则该质数的倍数为合数,一直到sqrt(n),便可以找出所有质数
class Solution { public: int countPrimes(int n) { if (n <= 2) return 0; vector<bool> primes(n+1,true); for(int i=3;i<=sqrt(n);i++) { if(primes[i]) { for(int j=i*i;j<=n;j+=i) primes[j]=false; } } int count=0; for(int i=2;i<=n;i++) if(primes[i]) count++; return count; } };
标签:
原文地址:http://blog.csdn.net/lp2hsf/article/details/45576605