204. Count Primes
Description:
Count the number of prime numbers less than a non-negative number, n.
Analysis:
大家基本都会使用这个方法啦:https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes
下面程序中vector的int类型改为bool应该会更好一些。
Source Code(C++):
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
class Solution {
public:
int countPrimes(int n) {
if (n<2){
return 0;
}
vector<int> v(n, 1);
v.at(0)=0;v.at(1)=0;
for(int i=2; i<sqrt((float)n); i++) {
if(v.at(i)==1){
for (int j=2; i*j<n; j++){
v.at(i*j)=0;
}
}
}
int prime_counts=0;
for (int i=0; i<n; i++){
if (v.at(i)==1){
prime_counts++;
}
}
return prime_counts;
}
};
int main() {
Solution sol;
cout << sol.countPrimes(0);
cout << sol.countPrimes(100);
return 0;
}