Description:
Count the number of prime numbers less than a non-negative number, n
Hint: The number n could be in the order of 100,000 to 5,000,000.
C++实现代码:
#include<new> #include<iostream> #include<cmath> #include<cstring> using namespace std; class Solution { public: int countPrimes(int n) { bool *arr=new bool[n+1]; memset(arr,true,n); int count=0; for(int i=2;i*i<=n;++i) { if(arr[i]) { int j=i; while(j*i<=n) { arr[i*j]=0; ++j; } } } for(int i=2;i<n;++i) { if(arr[i]) count++; } return count; } }; int main() { Solution s; cout<<s.countPrimes(499979)<<endl; }