统计所有小于非负整数 n 的质数的数量。
示例:
输入: 10 输出: 4 解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。
1. 看到这道题的时候,第一反应是用遍历。
class Solution(object):
def countPrimes(self, n):
"""
:type n: int
:rtype: int
"""
def isPrimes(n):
if n == 1:
return bool(0)
for i in range(2, int(n**0.5) + 1):
if n % i == 0:
return bool(0)
return bool(1)
count = 0
for i in range(1, n):
if isPrimes(i):
count += 1
return count
2. 查了一下,发现一个十分炫酷的方法:厄拉多塞筛法,具体讲解可以