Count the number of prime numbers less than a non-negative number, n. I have created the following code but the complexity is too high. I would really be grateful if some one give me a better resolution.
import math
class Solution(object):
def countPrimes(self, n):
PrimeCount=0
primelist=[]
for i in range(2,n):
if self.primeCheck1(i,primelist)==True:
primelist.append(i) #try2 with new logic
PrimeCount=PrimeCount+1
return PrimeCount
def primeCheck1(self,n,primelist):
flag=False
if n==2:
return True
elif n==3:
return True
sqroot=int(math.sqrt(n))
for j in range(0,sqroot):
if n%primelist[j]==0:
flag=True
break
if flag!=True:
return True
else:
return False