Description:
Count the number of prime numbers less than a non-negative number, n.
题意:输出小于一个非负整数n的素数的个数
思路:除2以外的偶数都不是素数,非素数的因数必有一个小于sqrt(n)。
class Solution {
public:
int countPrimes(int n) {
int count = 0;
for (int i = 2; i < n; ++i)
if (judgePrimes(i))
count++;
return count;
}
bool judgePrimes(int n) {
if (n == 1) return false;
if (n == 2 || n == 3 || n == 5 || n == 7) return true;
if (n % 2 == 0) return false;
for (int i = 3; i*i <= n; i += 2)
if (n % i == 0) return false;
return true;
}
};