LeetCode Algorithm 204. 计数质数
Posted Alex_996
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode Algorithm 204. 计数质数相关的知识,希望对你有一定的参考价值。
Ideas
质数的题目相对来说是个很经典的内容,虽然枚举也可以解决,但是复杂度很高,所以决定用埃氏筛来实现。
埃氏筛的基本思想是:从2开始,将每个质数的倍数都标记成合数。
Code
Python
class 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
以上是关于LeetCode Algorithm 204. 计数质数的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode----204. Count Primes(Java)