Count Primes
2015-06-10 22:22
225 查看
数出小于n的质数个数。本人自己写只能想到双循环n方的逻辑,老是超时,只能网搜。发现一个叫什么什么的方法挺不错,简单易懂还是线性时间度,不过空间复杂度可能会大要用到bool
,为n。原理大致是从2开始到n-1凡是2倍数就标记false,3同理,以此类推,自然bool
剩下为true的就是质数了。
代码如下:
int countPrimes(int n) {
int result = 0;
bool primes
;
memset(primes, true, sizeof(bool) * (n));
primes[0] = false, primes[1] = false;
for (int i = 2; i < sqrt(n); i++) {
if (primes[i]) {
for (int j = i * i; j < n; j += i) {
primes[j] = false;
}
}
}
for (int i = 0; i < n; i++)
if (primes[i])
result++;
return result;
}
,为n。原理大致是从2开始到n-1凡是2倍数就标记false,3同理,以此类推,自然bool
剩下为true的就是质数了。
代码如下:
int countPrimes(int n) {
int result = 0;
bool primes
;
memset(primes, true, sizeof(bool) * (n));
primes[0] = false, primes[1] = false;
for (int i = 2; i < sqrt(n); i++) {
if (primes[i]) {
for (int j = i * i; j < n; j += i) {
primes[j] = false;
}
}
}
for (int i = 0; i < n; i++)
if (primes[i])
result++;
return result;
}
相关文章推荐
- 杭电 ACM HDU 1162 Eddy's picture (最短路 prim算法)
- android 开发如何做内存优化
- ubuntu14.04下使用tetview遇到的问题
- Oracle数据库开发人员技能
- java Introspector谈Java内省机制
- Python基础:27执行环境
- 设计模式学习笔记--抽象工厂模式
- 机器学习三 -- 用Python实现K-近邻算法
- 2015年6月9日 调职思考
- 并查集(Union-Find)算法介绍
- stdafx.h
- HTML5 WebSocket 简单入门
- [BI项目记]-新任务处理
- Android电池控制的检测和修改
- sqlserver 表行转列
- MPlayerX For Mac白屏问题
- jar 用法详解
- 数据库系统中的数据模型基本概念
- Remove Linked List Elements
- 英语四六级、考研作文黄金句子(至尊版)