统计所有小于非负整数 n 的质数的数量。
示例 1:
输入:n = 10
输出:4
解释:小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。
示例 2:
输入:n = 0
输出:0
示例 3:
输入:n = 1
输出:0
提示:
0 <= n <= 5 * 10^6
方法一:筛子法
class Solution:
def countPrimes(self, n: int) -> int:
if n < 3: return 0
f = [1]*n
f[0] = f[1] = 0
for i in range(2, round(sqrt(n)) + 1):
if f[i] == 0: continue
j = i*i
while j < n:
f[j] = 0
j += i
ans = f.count(1)
return ans
网友评论