快速求小于N的所有素数
来源:互联网 发布:中国环境监测数据 编辑:程序博客网 时间:2024/05/16 00:38
首先,贴上实现的源代码:
//// main.cpp// testC++1//// Created by fei dou on 12-7-26.// Copyright (c) 2012年 vrlab. All rights reserved.//#include <iostream>#include <cmath>using namespace std;void primeLessThanN( int n){ if(n < 1) return ; bool *isPrime = new bool[n+1];//动态生成一个数组 memset((void*)isPrime, true, (n + 1)*sizeof(bool)); int sqrtOfN = sqrt(n); isPrime[0] = false; isPrime[1] = false; for( int i = 0; i <= sqrtOfN; ++ i ) if(isPrime[i] == true) for(int j = i*i; j <= n; j +=i) isPrime[j] = false; int count = 0; for(int m = 0; m <= n ; m ++) { if(isPrime[m] == true) { printf("%-5d ",m); ++ count; if( count % 5 == 0 ) printf("\n"); } } delete[] isPrime;//释放空间}int main (int argc, const char * argv[]){ primeLessThanN(32768); return 0;}
本程序使用的是Sieve of Eratosthenes方法,这是一种快事求取小于N的所有素数的方法。
它的具体原理可以参考:http://en.wikipedia.org/wiki/Eratosthenes_Sieve
如果有什么不太名白的地方可以给我留言,大家一起探讨!
- 快速求小于N的所有素数
- 经典算法题之求小于N的所有素数
- Eratosthenes筛选法求小于N的所有素数个数
- 查找小于N的所有素数
- 求小于一个整数的所有素数
- 求小于n的所有素数,按照每行10个显示出来
- 求小于正整数N的所有质数
- 求n的所有素数
- 小于n的素数
- 输出小于N的所有质数(素数)
- 打印小于N的所有素数(埃拉托色尼筛法)
- java 找出小于数字N的所有素数
- 求小于n的素数个数(模板)
- 求N内的所有素数
- 求正整数n以内的所有素数
- 求N内的所有素数
- 求N以内的所有素数
- 求N内的所有素数
- 如何在android模拟器上模拟SD卡
- SQL SERVER 优化心得
- deophi: 控键name 变全称 例如:btn->Button , edt->Edit.......
- 我使用过的Linux命令之for - Bash中的For循环
- poj 1562 Oil Deposits
- 快速求小于N的所有素数
- 自定义iOS的状态栏
- Request.UrlReferrer详解
- 关于Zbar和ZXing这两个无比强大的二维码和条形码识别工具
- [C#]使用Mutex實現單一程式執行個體的注意事項
- 数据统计与挖掘的通用设计原则
- mysql insert语句精辟之处
- ubuntu系统下搭建android开发环境
- 推荐大家WCF RIA Service的学习资源