力扣-204 计数质数

这题用普通的质数筛选方法直接就给你超时了,所以我们肯定得用其他的方法,对算法进行改进

埃式筛

思路就是,先定义一个数组进行标记。
开始定义这个数组所表示的数全部都是质数,然后开始筛选。
假如这个数是质数,那么这个数的倍数就全部都被筛选下来了。

AC Code

class Solution {public:bool ret[10000006];int countPrimes(int n) {int ans =0;if(n<2) return 0;for(int i=2;i<n;i++){if(!ret[i]){for(int j = 2;j*i<n;j++)ret[j*i]=1;ans++;}}return ans;}
};

线性筛

线性筛的核心思想:每个合数只会被自己的最小的质因数筛去。
比如:12只会被2筛去 21只会被3筛去。

AC Code

class Solution {public:int ret[10000006];int prime[1000005];int countPrimes(int n) {if(n<2) return 0;ret[0]=ret[1]=1;int cnt=0;for(int i=2;i<n;i++){if(!ret[i]){prime[cnt++]=i;}for(int j=0;j<cnt && i*prime[j]<n;j++){ret[i*prime[j]] = 1;if(i%prime[j] == 0) break;}}return cnt;}
};

力扣-204 计数质数相关推荐

  1. 力扣——204. 计数质数

    题目 python代码 1.直接法 import timeitdef countPrimes(n):'''按照质数的定义,用常规的方法来取质数 '''primesList = []for i in r ...

  2. 力扣202.计数质数

    题目描述 统计所有小于非负整数 n 的质数的数量. 示例 示例 1:输入:n = 10 输出:4 解释:小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 .示例 2:输入:n = 0 ...

  3. LeetCode Algorithm 204. 计数质数

    204. 计数质数 Ideas 质数的题目相对来说是个很经典的内容,虽然枚举也可以解决,但是复杂度很高,所以决定用埃氏筛来实现. 埃氏筛的基本思想是:从2开始,将每个质数的倍数都标记成合数. Code ...

  4. (补)20200911:力扣204周周赛题解下

    力扣204周周赛题解下 题目 思路与算法 代码实现 写在最后 题目 3.1568. 使陆地分离的最少天数 思路与算法 本周周赛第三题勉强可以看看,第四题超出我目前的水平,跳过.第三题是一个典型的dfs ...

  5. 20200910:力扣204周周赛题解上(Java/Python/Cpp)

    力扣204周周赛题解上 题目 思路与算法 代码实现 写在最后 题目 1.1566. 重复至少 K 次且长度为 M 的模式 2.1567. 乘积为正数的最长子数组长度 思路与算法 热身题不要求算法技巧, ...

  6. python力扣刷题记录——204. 计数质数

    题目: 统计所有小于非负整数 n 的质数的数量. 方法一: 暴力法 class Solution:def countPrimes(self, n: int) -> int:count = 0if ...

  7. Leetcode 204. 计数质数 解题思路及C++实现

    解题思路: 利用一个数组记录 n 个数是否为质数. 质数的倍数都是非质数,就这样遍历下去就可以了. class Solution { public:int countPrimes(int n) {if ...

  8. leetcode 204. 计数质数

    题目 思路:厄拉多塞筛法 比如说求20以内质数的个数 首先 0, 1 不是质数 2 是第一个质数,然后把 20 以内所有 2 的倍数划去 2 后面紧跟的数即为下一个质数 3 , 然后把 3 所有的倍数 ...

  9. LeetCode:204. 计数质数

    1.题目描述 统计所有小于非负整数 n 的质数的数量. 示例: 输入: 10 输出: 4 解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 . 2.题解 2.1.解法一 缺点: ...

  10. LeetCode 204. 计数质数(质数的倍数不是质数)

    1. 题目 统计所有小于非负整数 n 的质数的数量. 示例:输入: 10 输出: 4 解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 . 2. 填表解题 2的倍数不是质数 3 ...

最新文章

  1. 印度小哥“神剑”:PDF提取表格so easy!
  2. html设置字体整体放大,请教怎么样可以只放大或缩小内容层里的字体呢?我不想让整页都放大缩小。请指教!谢谢!_html/css_WEB-ITnose...
  3. break、continue和return的使用
  4. MySQL in语句内参数个数限制
  5. LiveVideoStack线上分享第三季(六):深度学习与视频编码
  6. 【视频码率==文件传输大小等通用计算】
  7. Java面试知识点:多态、内部类
  8. axi时序图_深入 AXI4总线(E3)实战:制作一个 AXI 接口 IP
  9. mac下终端命令行下添加mysql命令
  10. linux查看端口属性,linux如何查看系统属性指令?
  11. 大一matlab知识整理,MATLAB基础课程 第二章 MATLAB绘图知识(5)
  12. 二维树状数组(水题) POJ1195
  13. faster rcnn resnet_张航、李沐等人提出ResNet最强改进版:性能提高3%,参数不增
  14. json标准格式举例_JSON格式简介及一些对应函数
  15. C中得到4号错误(中断),怎么办
  16. 2021-09-14Apriori 算法是基于关联规则的高效数 据挖掘算法
  17. 【信号处理】信号与系统 电子课本(郑君里)
  18. 概率分布总结及正态分布检验K-S检验用法
  19. 腐蚀rust电脑分辨率调多少_腐蚀Rust帧数优化指南 游戏FPS提高方法说明
  20. newman V3 command line

热门文章

  1. [Swift]LeetCode874. 模拟行走机器人 | Walking Robot Simulation
  2. centos7 安装python3.6 及模块安装演示
  3. 使用python生成c文件模板
  4. 【JUC】JDK1.8源码分析之ConcurrentSkipListMap(二)
  5. Spring MVC @ResponseBody返回中文字符串乱码问题
  6. 趣达学院学习有奖活动!
  7. 刚创建了蕝薱嚣张IT部落
  8. HAL中通过jni调用java方法的问题
  9. EMNLP21' | 细粒度情感分析新突破 —— 通过有监督对比学习方法学习隐式情感...
  10. 没有顶会的 CV/NLP 方向的博士生毕业出路在哪里?