204. 计数质数
Ideas质数的题目相对来说是个很经典的内容,虽然枚举也可以解决,但是复杂度很高,所以决定用埃氏筛来实现。
埃氏筛的基本思想是:从2开始,将每个质数的倍数都标记成合数。
Code Pythonclass Solution: def countPrimes(self, n: int) -> int: ans, isPrimer = 0, [True] * n # isPrimer 用于标记是否为质数 for i in range(2, n): if isPrimer[i]: ans += 1 for k in range(2, n): if i * k < n: isPrimer[i * k] = False # 将质数 i 的倍数都标记为合数 else: break return ans