<p>计算素数的个数小于非负数n。我创建了以下代码,但复杂度太高了。如果有人能给我一个更好的解决办法,我将不胜感激。在</p>
<pre><code>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.<a href="https://www.cnpython.com/list/append" class="inner-link">append</a>(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
</code></pre>