Problem
Count the number of prime numbers less than a non-negative number, n.
Example:
Input: 10 Output: 4 Explanation: There are 4 prime numbers less than 10, they are 2, 3, 5, 7.
Code
public class Solution {
public int countPrimes(int n) {
int ret = 0;
boolean[] flags = new boolean[n];
for (int i = 2; i < n; ++i) {
if (!flags[i]) {
ret++;
int j = (n - 1) / i;
for (int k = 2; k <= j; ++k) {
flags[i * k] = true;
}
}
}
return ret;
}
}