题目:
统计所有小于非负整数 n 的质数的数量。
示例 1:
输入:n = 10
输出:4
解释:小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。
示例 2:
输入:n = 0
输出:0
示例 3:
输入:n = 1
输出:0
代码:
class Solution:
def countPrimes(self, n: int) -> int:
if n <= 1:
return 0
#素数筛
def check (n):
is_prime = [True]*(n+1)
for x in range(2,n+1):
if is_prime[x]:
for y in range(x**2,n+1,x):
is_prime[y] = False
return [x for x in range(2,n+1) if is_prime[x]]
res = check(n)
return len(res) if res[-1] < n else len(res)-1