LeetCode:204. 计数质数

1、题目描述

统计所有小于非负整数 的质数的数量。

示例:

1
2
3
输入: 10
输出: 4
解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7

2、题解

2.1、解法一

  缺点:太慢

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Solution(object):
    def countPrimes(self, n):
        """
        :type n: int
        :rtype: int
        """
 
        count = 0
        flag = [False for i in range(n)]
 
        for i in range(2,n):
            if flag[i] == False:
                count += 1
                j = 1
                while j*i <n:
                    flag[j*i] = True
                    j+=1
 
        return count

2.2、解法二

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution(object):
    def countPrimes(self, n):
        """
        :type n: int
        :rtype: int
        """
 
        if n < 3:
            return 0
        sieve = [1] * (n / 2)
        for i in range(3, int(n**0.5)+1, 2):
            if sieve[i/2]:
                sieve[i*i/2::i] = [0] * ((n-i*i-1)/(2*i)+1)
        return 1 + sum(sieve[1:])

  

  

 

posted @   RobotsRising  阅读(243)  评论(0编辑  收藏  举报
编辑推荐:
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
阅读排行:
· ThreeJs-16智慧城市项目(重磅以及未来发展ai)
· 软件产品开发中常见的10个问题及处理方法
· Vite CVE-2025-30208 安全漏洞
· MQ 如何保证数据一致性?
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp
点击右上角即可分享
微信分享提示