LeetCode 204. 计数质数(质数的倍数不是质数)
1. 题目
统计所有小于非负整数 n 的质数的数量。
示例:输入: 10
输出: 4
解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。
2. 填表解题
- 2的倍数不是质数
- 3的倍数不是质数
- 5的倍数,7的倍数,11的倍数。。。质数的倍数不是质数
class Solution {public:int countPrimes(int n) {if(n <= 2)return 0;bool isTrue[n];memset(isTrue,true,n*sizeof(bool));int count = 0;for(int i = 2; i < n; ++i){if(isTrue[i])for(int j = 2*i; j < n; j = j+i)isTrue[j] = false;}for(int i = 2; i < n; ++i)if(isTrue[i])count++;return count;}
};
优化双重循环的范围,减少重复
class Solution {public:int countPrimes(int n) {if(n <= 2)return 0;bool isTrue[n];memset(isTrue,true,n*sizeof(bool));int count = 0;for(int i = 2; i < sqrt(n); ++i){if(isTrue[i])for(int j = i*i; j < n; j = j+i)isTrue[j] = false;}for(int i = 2; i < n; ++i)if(isTrue[i])count++;return count;}
};
https://www.lintcode.com/problem/find-prime 也有题目可以做
输出n以内所有的素数
class Solution {public:/*** @param n: an integer* @return: return all prime numbers within n.*/vector<int> prime(int n) {// write your code herevector<int> ans;vector<bool> isprime(n+1, true);for(int i = 2; i <= n; ++i){if(isprime[i]){for(int j = i*i; j <= n; j += i)isprime[j] = false;}}for(int i = 2; i <= n; ++i)if(isprime[i])ans.push_back(i);return ans;}
};
LeetCode 204. 计数质数(质数的倍数不是质数)相关推荐
- Leetcode 204. 计数质数 解题思路及C++实现
解题思路: 利用一个数组记录 n 个数是否为质数. 质数的倍数都是非质数,就这样遍历下去就可以了. class Solution { public:int countPrimes(int n) {if ...
- leetcode 204. 计数质数
题目 思路:厄拉多塞筛法 比如说求20以内质数的个数 首先 0, 1 不是质数 2 是第一个质数,然后把 20 以内所有 2 的倍数划去 2 后面紧跟的数即为下一个质数 3 , 然后把 3 所有的倍数 ...
- LeetCode Algorithm 204. 计数质数
204. 计数质数 Ideas 质数的题目相对来说是个很经典的内容,虽然枚举也可以解决,但是复杂度很高,所以决定用埃氏筛来实现. 埃氏筛的基本思想是:从2开始,将每个质数的倍数都标记成合数. Code ...
- 【LeetCode】计数质数 [M](素数筛选)
204. 计数质数 - 力扣(LeetCode) 一.题目 给定整数 n ,返回 所有小于非负整数 n 的质数的数量 . 示例 1: 输入:n = 10 输出:4 解释:小于 10 的质数一共有 4 ...
- 力扣——204. 计数质数
题目 python代码 1.直接法 import timeitdef countPrimes(n):'''按照质数的定义,用常规的方法来取质数 '''primesList = []for i in r ...
- c语言求13为质数的代码,C语言求质数.doc
C语言求质数 试编写一个程序,找出2->N之间的所有质数.希望用尽可能快的方法实现.[问题分析]: 这个问题可以有两种解法:一种是用"筛子法",另一种是从2->N检查, ...
- java求小于n的素数_java_Java实现求小于n的质数的3种方法,质数概念
质数,又称素数, - phpStudy...
Java实现求小于n的质数的3种方法 质数概念 质数,又称素数,指在一个大于1的自然数中,除了1和此整数自身外,无法被其他自然数整除的数(也可定义为只有1和本身两个因数的数). 最小的素数是2,也是素 ...
- java 10000以内的质数_【10000以内有多少质数】作业帮
1-10000 共1229个质数 10001-20000一共有 1033个质数 20001-30000一共有 983个质数 30001-40000一共有 958个质数 40001-50000一共有 9 ...
- LeetCode从读题到自闭:204. 计数质数
题目:统计所有小于非负整数 n 的质数的数量 示例 1: 输入:n = 10 输出:4 解释:小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 . 示例 2: 输入:n = 0 输出: ...
最新文章
- Wpf消息循环之消息传递
- Leangoo看板工具做单团队敏捷开发
- 报错信息为:Failed to configure a DataSource: ‘url‘ attribute is not specified and no embedded datasource
- dynamips模拟器模块详细介绍
- Spring发送带附件邮件
- Ivan Fedorov:用已知无法想象未来 - Mixin Network开发者访谈
- 2020-08-14 光纤通信第三章知识点整理
- UISwitch 开关控件—IOS开发
- 文档类型HTML和XHTML,关于xhtml:html中有哪些不同的doctypes,它们是什么意思?
- 电商C4D素材,玩转立体作品不是问题
- 本地升级MySQL数据库版本为8.0.23,使用SQLyog(小海豚)无法进行连接
- Java EE开发四大常用框架(1)
- WinXP系统连接网络教程
- 毫无PS痕迹 你的第一本Photoshop书pdf
- XRD 数据处理:使用 Origin 进行多谱图对比
- 斑马打印机怎么设置标签纸
- 1.《阿西莫夫:机器人短篇全集》
- 第2课计算机的发展教学反思,信息技术课教学反思2
- 忠魁互联头条SEO优化:字节跳动打造全新搜索引擎
- 【JDK8 新特性2】JDK 8 接口默认方法/静态方法
热门文章
- TCP的定时器系列 — 保活定时器(有图有代码有真相!!!)
- ARM中各始终之间的关系,FCLK HCLK PCLK的关系
- 使用spring的@autowired注解,无法实例化dao
- VS 使用 :新建项目
- PHP json_encode后的数据有的大括号于中括号
- Confluent Platform 3.0支持使用Kafka Streams实现实时的数据处理(最新版已经是3.1了,支持kafka0.10了)...
- plsql 中的一些好的设置和快捷键总结
- 静态链接库与动态链接库的区别
- 排序 八种经典排序算法
- emailjava中怎么校验_Java使用注解实现参数统一校验功能