Description:
Count the number of prime numbers less than a non-negative number, n.
java
public class Solution {
public int countPrimes(int n) {
boolean[] a= new boolean[n];
for (int i=2;i*i<n;i++){
if(!a[i]){
for(int j=i;i*j<n;j++){
a[i*j]=true;
}
}
}
int count=0;
for(int i=2;i<n;i++){
if(a[i]==false) ++count;
}
return count;
}
}
python
def countPrimes(n):
if n<=1:
return 0
elif n==2:
return 1
a={}
for i in range(2,n):
a.setdefault(i,None)
for i in range(2,n):
temp=n/i
for k in range(temp+1):
if k>1:
if k*i in a:
a.pop(k*i)
return len(a)