【发布时间】:2025-12-28 19:35:11
【问题描述】:
计算小于非负数 n 的素数个数。我创建了以下代码,但复杂性太高。如果有人给我一个更好的解决方案,我将不胜感激。
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
【问题讨论】:
-
这可能最好发布在codereview.stackexchange.com
标签: python algorithm numbers time-complexity primes