[LeetCode 204] Count Primes(Python)
来源:互联网 发布:淘宝修改密码在哪里 编辑:程序博客网 时间:2024/06/01 08:07
题目描述
Count the number of prime numbers less than a non-negative number, n.
思路
开辟一个辅助数组,依次标记
代码
class Solution(object): def countPrimes(self, n): """ :type n: int :rtype: int """ if n is None or n <= 1: return 0 tmp = [True] * n tmp[0] = False tmp[1] = False i = 2 while i * i < n: if tmp[i]: j = i while j * i < n: tmp[i * j] = False j += 1 i += 1 res = 0 for k in tmp: if k: res += 1 return res
复杂度分析
时间复杂度
如何判断一个数是否为素数
- 法一
遍历2 到(n−1) ,看是否有数字能整除n 。时间复杂度O(n) 。 - 法二
遍历2 到n√ ,看是否有数字能整除n 。时间复杂度O(logn) 。 法三
大于等于5的素数一定和6的倍数相邻。
若x≥1 ,...,6x−1,6x,6x+1,6x+2,6x+3,6x+4,6x+5,6(x+1),... ,除6x−1 和6x+1 都一定不是素数(因为都能找到约数)。那么我们就可以以6为步长,只判断6的倍数左右两侧的数,加快速度。class Solution:"""@param: head: a ListNode@return: a ListNode"""def isPrime(self, n): if n is None or n < 2: return False if n == 2 or n == 3: return True if n % 6 != 1 and n % 6 != 5: return False i = 5 while i * i <= n: if n % i == 0 or n % (i + 2) == 0: return False i += 6 return True
阅读全文
1 0
- [LeetCode 204] Count Primes(Python)
- LeetCode 204 - Count Primes
- LeetCode 204-Count Primes
- [LeetCode 204] Count Primes
- leetcode 204: Count Primes
- LeetCode 204:Count Primes
- leetcode-204 Count Primes
- Count Primes - LeetCode 204
- Leetcode 204 Count Primes
- leetcode[204]:Count Primes
- Leetcode 204 Count Primes
- leetcode-204 Count Primes
- leetcode 204:Count Primes
- leetcode-204-Count Primes
- leetCode #204 Count Primes
- leetcode 204: Count Primes
- LeetCode 204 Count Primes
- [leetcode 204] Count Primes
- Java多线程知识要点
- ffmpeg AVFilter介绍
- java中堆内存与栈内存区别
- CAD图纸转换之cad图怎么转换成pdf的经验分享
- Redis VS. Memcached 均不适合数据量高于1千万条,且保证数据完整的key-value存储
- [LeetCode 204] Count Primes(Python)
- day15-session&jsp&验证码
- 自适应提升算法(AdaBoost)介绍(二)
- 总结:如何使用redis缓存加索引处理数据库百万级并发
- 活动和碎片的一些区别以及活动的启动模式
- Spring Cloud实战(四):微服务质量监控-Hystrix仪表盘
- HDU 6212 Zuma ACM/ICPC 2017 Qingdao Online(区间dp)
- Mac连接京瓷打印机Fs-1030MFP/DP
- java跳出多次循环