博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
204. Count Primes
阅读量:6452 次
发布时间:2019-06-23

本文共 586 字,大约阅读时间需要 1 分钟。

题目链接:

思路:

首先要知道如何判断一个数字是否为素数。具体方法可以看

其次,如果朴素的判断,那么会因为效率底下而超时。

所以在我们每次找到素数的时候,可以把素数的倍数都标记为非素数。这样可以节省轮询的时间。

算法复杂度

时间:O(nloglogn) (time complexity for Sieve of Eratosthenes Algorithm)空间:O(n)

代码:

class Solution(object):    def countPrimes(self, n):        """        :type n: int        :rtype: int        """        if n < 3:            return 0        primes = [True] * n        primes[0] = primes[1] = False        for i in range(2, int(n**0.5)+1):            if primes[i]:                for j in range(i*i, n, i):                    primes[j] = False                return sum(primes)

转载地址:http://ymgwo.baihongyu.com/

你可能感兴趣的文章
AJAX POST&跨域 解决方案 - CORS
查看>>
如何设计企业内部的数据平台?
查看>>
关于最小生成树中的kruskal算法中判断两个点是否在同一个连通分量的方法总结...
查看>>
【译】Linux系统和性能监控(4)
查看>>
开篇,博客的申请理由
查看>>
点滴积累【C#】---C#实现上传word以流形式保存到数据库和读取数据库中的word文件。...
查看>>
Ubuntu常用笔记
查看>>
Token和session 详解
查看>>
JMeter IP欺骗压测
查看>>
Serializers 序列化组件
查看>>
最简单的RPC框架实现
查看>>
Servlet 技术全总结 (已完成,不定期增加内容)
查看>>
[JSOI2008]星球大战starwar BZOJ1015
查看>>
CountDownLatch与thread-join()的区别
查看>>
linux下MySQL安装登录及操作
查看>>
二项队列
查看>>
Nginx
查看>>
centos 7 部署LDAP服务
查看>>
揭秘马云帝国内幕:马云的野心有多大
查看>>
topcoder srm 680 div1
查看>>