204. 计数质数

204. 计数质数

题目

首先从 2 开始,我们知道 2 是一个素数,那么 2 × 2 = 4, 3 × 2 = 6, 4 × 2 = 8... 都不可能是素数了。

然后我们发现 3 也是素数,那么 3 × 2 = 6, 3 × 3 = 9, 3 × 4 = 12... 也都不可能是素数了。

我们维护一个list:isprime。初始把isprime全部置为True,然后遍历这个list。如果为true,,表示这个数为质数,则ans加1,然后把当前数字的倍数对应的isprime置为False。如果为False,表明当前这个数为合数,不做任何操作。

class Solution:
    def countPrimes(self, n: int) -> int:
        isprime = [True] * (n-1)
        ans = 0
        for i in range(1,n-1):
            if isprime[i]:
                ans += 1
                p = i + i + 1
                while p<n-1:
                    isprime[p] = False
                    p += i + 1
        return ans
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容