题目描述
Count the number of prime numbers less than a non-negative number, n.
计算比一个非负数n小的所有质数的个数。
思路
采用厄尔多塞筛法。
代码
class Solution:
def countPrimes(self, n):
"""
:type n: int
:rtype: int
"""
if n <3:
return 0
digits = [1]*n
digits[0] = digits[1] = 0
for i in range(2, int(n**0.5)+1):
if digits[i] == 1:
for j in range(i+i, n, i):
digits[j] = 0
return sum(digits)