素数表的C++实现:快速进行素数筛选(埃氏筛法)
不同范围中,素数的个数:
MAXN = 10 count = 4MAXN = 100 count = 25MAXN = 1000 count = 168MAXN = 10000 count = 1229MAXN = 100000 count = 9592MAXN = 1000000 count = 78498MAXN = 10000000 count = 664579MAXN = 100000000 count = 5761455MAXN = 1000000000 count = 50847534MAXN = 10000000000 count = 无法计算
以下是代码实现:
#include <iostream>
#include <vector>
using namespace std;const int MAXN = 1000000000; // 十亿
vector<int> prime;
bool p[MAXN] = { 0 }; // 初始化,默认所有的数都是素数void findPrime() {for (int i = 2; i < MAXN; ++i) {if (p[i] == false) {prime.emplace_back(i);for (int j = i + i; j < MAXN; j += i) {// 将 i 的所有倍数标记为true,表示其不是素数p[j] = true;}}}
}int main() {findPrime();cout << "count = " << prime.size() << endl;return 0;
}
谢谢阅读
素数表的C++实现:快速进行素数筛选(埃氏筛法)相关推荐
- 快速求素数表——埃氏筛法与欧拉筛法
快速求素数表--埃氏筛法与欧拉筛法 快速求素数表埃氏筛法与欧拉筛法 埃氏筛法 埃氏筛法原理 埃氏筛法时间复杂度 埃氏筛法代码求出1000000以内的素数并且输出n个素数 欧拉筛法 欧拉筛法原理 欧拉筛 ...
- 线性筛法求素数c语言,[算法]素数筛法(埃氏筛法线性筛法)
一.素数筛的定义 给定一个整数n,求出[1,n]之间的所有质数(素数),这样的问题为素数筛(素数的筛选问题). 二.埃氏筛法(Eratosthenes筛法) 埃氏筛法又叫做Eratosthenes筛法 ...
- 进阶必备:素数筛法(欧拉,埃氏筛法)
筛选素数其实有两种比较高效的算法可以提供选用,分别是:Eratosthenes筛选法与欧拉筛选法.但是欧拉算法的普适性比较高,所以这里就只介绍欧拉函数的算法. 筛选的范围较小的话,欧拉算法,数据较大, ...
- 用“埃氏筛法”求2~10000以内的素数。2~100以内的数,先去掉2的倍数,再去掉3的倍数,再去掉5的倍数,……依此类推,最后剩下的就是素数。
需求:用"埃氏筛法"求2-100以内的素数.2-100以内的数,先去掉2的倍数,再去掉3的倍数,再去掉5的倍数,--依此类推,最后剩下的就是素数.(JAVA语言编写) 埃氏筛选:要 ...
- 素数计算之埃氏筛法、欧拉筛法
埃氏筛法 int main() {const int maxNumber=200;int isPrime[maxNumber];int i;int x;for (i=0;i<maxNumber; ...
- C++Eratosthenes埃氏筛法获取素数列表的实现算法(附完整源码)
C++Eratosthenes埃氏筛法获取素数列表的实现算法 C++Eratosthenes埃氏筛法获取素数列表的实现算法完整源码(定义,实现,main函数测试) C++Eratosthenes埃氏筛 ...
- 埃氏筛法求素数(C语言)
问题要求: 用埃氏筛法求100000以内的素数,并输出总个数. 知识简介: 埃氏筛法,全名埃拉托斯特尼筛法,也叫爱氏筛法,是一种由希腊数学家埃拉托斯特尼所提出的一种简单检定素数的算法. 要得到 自然数 ...
- 【中国大学MOOC】java程序设计-week3-用“埃氏筛法”求2~100以内的素数
1.题目 用"埃氏筛法"求2-100以内的素数.2-100以内的数,先去掉2的倍数,再去掉3的倍数,再去掉5的倍数,--依此类推,最后剩下的就是素数. 要求使用数组及增强的for语 ...
- Java用“埃氏筛法”求素数
用"埃氏筛法"求素数. 先去掉2的倍数,再去掉3的倍数,再去掉4的倍数,--依此类推,最后剩下的就是素数. 要求:使用数组,使用数组的长度,使用增强的for语句 import ja ...
- 【算法学习】找素数的几种算法: 简单穷举, 埃氏筛法, 欧氏筛法, 从O(n2)到O(n)
文章简介 本文记录寻找素数的几种算法, 本文中的O()没有指明默认表示时间复杂度 代码使用Java 目录 文章简介 正文 穷举计数法(判断O(n)) 优化: 布尔+break(判断 小于O(n)) 优 ...
最新文章
- 海思3515,交叉编译opencv2.4.9
- 内存泄漏MobX State Tree_[译]iOS Crash Dump Analysis 错误的内存崩溃
- COM编程之四 引用计数
- 5930. 两栋颜色不同且距离最远的房子
- 程序员的数学笔记3--迭代法
- net core 2 读取appsettings.json
- springboot图书管理怎么实现借书时间到期提醒_东和店镇第一小学图书数字化管理先进做法...
- 一.第一周golang学习:--string解析成基本数据类型
- 《python深度学习》总结与感想
- 触摸屏与单片机通讯C语言程序,讲述如何实现单片机与触摸屏的通信
- CVX使用基础教程-结合官网教程翻译
- SI4463研究计划(兼STM32F0进一步加深理解)
- 被低估的电池管理系统BMS
- 说说我对[lambda x: x*i for i in range(4)]的理解
- advanced option里面没有resolution
- VMware下ubuntu与windows主机共享文件夹
- WHQL认证产品可以 现在又可以查询了
- 可靠性试验类毕业论文文献都有哪些?
- 求最近公共祖先和所有祖先
- 轻触开源(二)-Gson项目源码解析_壹