埃筛的作用是找出区间内的所有素数,复杂度是O(nloglogn)。其基本思想是:素数的倍数一定是合数。

#include <bits/stdc++.h>
using namespace std;
const int Max = 1e5;
int n;
int prime[Max]; // 1表示是素数void eratos() {memset(prime, 1, sizeof(prime)); // 默认全是素数prime[0] = prime[1] = 0; // 0和1不是素数for (int i = 2; i * i <= n; i++) { // 当i*i>n时,i*j>n,内层循环一定不执行,白白浪费时间if (!prime[i]) continue;for (int j = i * 2; j <= n; j+=i) {prime[j] = 0; // 素数的倍数一定是合数}}
}int main() {cin >> n;eratos();for (int i = 0; i <=n; i++) if (prime[i]) cout << i << endl;return 0;
}

注意外层循环的条件是 i * i <= n,当 i 更大时,内层循环一定不执行,等于是浪费时间。
该程序可以在1秒内找出1e6范围以内的全部素数,了解即可,做题时应使用更高效的线性筛素数算法(欧拉筛法)。

埃拉托斯特尼筛法(埃筛)相关推荐

  1. 埃拉托斯特尼筛法求质数

    埃拉托斯特尼筛法:埃拉托斯特尼筛法,简称埃氏筛或爱氏筛,是一种由希腊数学家埃拉托斯特尼所提出的一种简单检定素数的算法.要得到自然数n以内的全部素数,必须把不大于根号n的所有素数的倍数剔除,剩下的就是素 ...

  2. 【算法/数论】埃拉托斯特尼筛法时间复杂度的证明

    文章目录 一.埃拉托斯特尼筛法简介 二.黎曼 ζ \zeta ζ函数与欧拉乘积公式 三.问题求解 一.埃拉托斯特尼筛法简介 埃拉托斯特尼筛法(Sieve of Eratosthenes)是一种能快速求 ...

  3. 埃拉托斯特尼筛法 快速查找素数

    埃拉托斯特尼筛法 快速查找素数 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 现在给你一个正整数N,要你快速的找出在2.....N这些数里面所有的素数. 输入 给出一个 ...

  4. 埃拉托斯特尼筛法(素数高效筛选)

    一.素数定义 素数又称质数(prime number),指所有大于1的数中只能被1和它本身整除的数. 二.埃拉托斯特尼筛法(Sieve of Eratosthenes) 1.算法的基本思想: 如果一个 ...

  5. 求大素数 - 埃拉托斯特尼筛法

    ★引言 昨天做一道数论的题,无意中接触到了关于筛法快速求素数的题目,就搞了一下关于素数的知识,大家都知道,数论其实和素数关系是非常紧密的. ★题目 下面我就由浅入深,从各种角度来剖析这道题目的奥妙. ...

  6. PAT1059 Prime Factors(埃拉托斯特尼筛法)

    这题一开始使用常规的素数求法发现会超时,最后选择了埃氏筛法. #include<vector> #include<iostream> #include<algorithm ...

  7. 埃拉托斯特尼筛法 the Sieve of Eratosthenes method

    步骤 列出2以后的所有范围内的数字 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ...range-1 标出序列中的第一个质数--2 将剩下序列中, ...

  8. 埃拉托斯特尼筛法算法复杂度(n*lnlnn)的证明([欧拉数学]素数倒数之和)

    上一篇文章我通过欧拉数学的方式简单地讲了数论中的"黎曼ζ函数"和"金钥匙".事实上,这把"金钥匙"与很多问题之间的联系已经被建立了起来,换句 ...

  9. 利用 OpenMP 实现埃拉托斯特尼(Eratosthenes)素数筛法并行化

    文章目录 1.算法简介 1.1 筛法起源 1.2 筛法过程 2.实现代码 参考文献 1.算法简介 1.1 筛法起源 筛法是一种简单检定素数的算法.据说是古希腊的埃拉托斯特尼(Eratosthenes, ...

最新文章

  1. 基于深度学习的肺癌预测诊断
  2. Linux shell 变量 数学 运算
  3. 《nodejs+gulp+webpack基础实战篇》课程笔记(四)-- 实战演练
  4. 我是一个喜欢桌游的前端女,跟朋友一起做了个桌游交流系统。在自己的系统里直播开发生活,希望得到更多交流...
  5. 递归函数中局部变量和全局变量
  6. 多线程共享java_java多线程之共享资源
  7. 安装nginx的过程
  8. postgres报错:FATAL: Peer authentication failed for user “zabbix“ Previous connection kept
  9. %02 java_Java基础02—变量、运算符和数据类型转换(示例代码)
  10. C++中regex库静态正则表达式库的好处及事例
  11. thinkPHP框架
  12. 人工智能终将自我进化?排除无用功能,让自己更加完美?
  13. 11210怎么等于24_算24点
  14. hbase 问题之 File system needs to be upgraded. You have version null and I want ver
  15. MOEAD原理及Python实现、MOEAD实现、基于分解的多目标进化、 切比雪夫方法-(python完整代码)
  16. 电声乐器的演奏特征与制作技巧-----(3)吉他篇
  17. 《保卫萝卜》分析续——地图构成
  18. 小程序设置整个页面背景
  19. DDR3不同型号不同位宽仿真记录
  20. Quantal Response Equilibrium调研

热门文章

  1. asm 查看 数据文件 修改 时间_更高效的GMX分段模拟方法:修改tpr文件
  2. 笔试真题及其答案解析:国内各大银行计算机方向笔试之计算机基础知识—选择题120题
  3. Python之sklearn:GridSearchCV()和fit()函数的简介、具体案例、使用方法之详细攻略
  4. AI:2020年6月23日北京智源大会演讲分享之智能信息检索与挖掘专题论坛——09:55-10:40刘兵教授《Open-World AI and Continual Learning》
  5. AI:2020年6月22日北京智源大会演讲分享之机器感知专题论坛—14:50-15:30吴玺宏教授《一种具身自监督学习框架:面向任何语种语音的音系构建任务》
  6. AI:2020年6月21日北京智源大会演讲分享之09:20-09:40黄铁军教授《智源进展报告》
  7. 成功解决ValueError: Invalid format string
  8. 深入浅出统计学 第一章 数据的可视化
  9. 蓝桥杯_算法训练_动态数组使用
  10. BootStrap Table - JS事件绑定