下面用n=10来说明过程
class Solution(object):
def countPrimes(self, n):
"""
:type n: int
:rtype: int
"""
if n < 3:
return 0
prime = [1] * n #prime=[1,1,1,1,1,1,1,1,1,1]
prime[0] = prime[1] = 0
for i in range(2, int(n**0.5) +1):
if prime[i] == 1:
#分别将index=a**m,(a=2,3,4,...,a<n,m=2,3,...,index<n)的值改为0.例如i=2的时候,prime=[1, 1, 1, 1, 0, 1, 0, 1, 0, 1]
prime[i*i:n:i] = [0]*len(prime[i*i:n:i])
return sum(prime)
```