Sieve of Eratosthenes

使用埃拉托斯特尼筛选法计算小于100000的素数。

埃拉托斯特尼筛选法是最为知名的产生素数的筛选法,适用于产生最小的N个素数。

该方法的唯一缺点是使用的存储空间大,可以进一步改进。

另外,该算法也不适用于计算某个范围内的全部素数。

C++版使用的标志是布尔标志,比起C语言版(用整数数组作为标识太浪费空间;用位运算逻辑太复杂,易出错),使用的空间上改进相当多,并且逻辑也十分简单。

这是一个基础程序,用到的时候可以拷贝修改加以利用。

程序如下:

/** 筛选法计算小于100000的素数* 筛选法求最小的素数序列,原本是不朽的数学家们手工计算的方法,*/#include <iostream>
#include <cmath>using namespace std;const int MAXN = 100000;
bool sieveflag[MAXN+1] = {false, false, true};void esieve(bool sflag[], int n)
{// 初始化for(int i=3; i<=n; i++) {sflag[i++] = true;sflag[i] = false;}// 筛选int max = sqrt(n);for(int i=3; i<=max; i++){if(sflag[i]) {for(int j=i+i; j <= n; j+=i)sflag[j] = false;}}}int main()
{esieve(sieveflag, MAXN);for(int i=2, num=0; i<=MAXN; i++){if(sieveflag[i]){++num;cout << num << ":" << i <<endl;}}return 0;
}

Eratosthenes筛选法(C++版)相关推荐

  1. Eratosthenes筛选法

    比起C++版,有点太费空间,弃用.参见:Eratosthenes筛选法(C++版). Sieve of Eratosthenes 使用埃拉托斯特尼筛选法计算小于100000的素数. 埃拉托斯特尼筛选法 ...

  2. 素数与线性筛选法初级版

    今天我们来学习一些关于素数和线性筛选法的知识,这类问题在ACM-ICPC中常常遇到,所以很有必要学好它. 首先,来看素数筛选的一个题. 题目:http://codeforces.com/problem ...

  3. 分拆素数和【筛选法】

    问题链接:HDU2098分拆素数和 问题简述:哥德巴赫猜想说,大于2的偶数可以分解成两个素数之和.该问题求分解个数. 问题分析:解决本问题,首先用Eratosthenes筛选法求得必要的素数,然后用试 ...

  4. Bailian3143 验证“歌德巴赫猜想”【筛选法】

    3143:验证"歌德巴赫猜想" 总时间限制: 1000ms 内存限制: 65536kB 描述 验证"歌德巴赫猜想",即:任意一个大于等于6的偶数均可表示成两个素 ...

  5. UVA12542 LA6149 Prime Substring【筛选法+贪心】

    Given a string of digits, your task is to find the largest prime number which presents in that strin ...

  6. UVA160 Factors and Factorials【筛选法】

    The factorial of a number N (written N!) is defined as the product of all the integers from 1 to N. ...

  7. UVA583 UVALive5406 Prime Factors【素数因子+筛选法】

    Webster defines prime as: prime (pr¯im) n. [ME, fr. MF, fem. of prin first, L primus; akin to L prio ...

  8. UVA10168 Summation of Four Primes【筛选法】

    Euler proved in one of his classic theorems that prime numbers are infinite in number. But can every ...

  9. NUC1019 数素数【素数筛选法】

    数素数 时间限制: 1000ms 内存限制: 65536KB 问题描述 素数是的只能被1和它本身整除的自然数.判断一个数是素数的方法是使用2到该数的平方根的素数除它,若有能整除的则该数不是素数. 输入 ...

最新文章

  1. AI每日看点 | 吉利收购飞行汽车公司;传华为暂停向高通支付专利费;高通拒绝博通收购邀约
  2. 使用DispatchAction类,为你的系统减肥!
  3. eclipse——jsp字体设置
  4. 声音对比处理_厨房垃圾处理器 | 厨余垃圾分类的正确打开姿势
  5. python numba.jit(该装饰器用于将Python函数编译为本机代码、python运算加速器)
  6. 调整了canvas的高度页面变化后还原_Python GUI编程入门(25)-移动Canvas对象
  7. xp2003服务器怎么安装系统,UEFI里启动Windows XP/Server 2003 x86教程
  8. C#生成新浪微博短网址 示例源码
  9. LeetCode206:Reverse Linked List
  10. 校验码(海明校验,CRC冗余校验,奇偶校验)
  11. java获取C盘下的隐藏目录文件名称
  12. 任晶磊:如何看待程序员在 GitHub 发起抗议互联网公司实行 996 工作制网站?
  13. Python 爬虫 PhantomJs 获取JS动态数据
  14. MySQL树结构查询所有叶子节点
  15. 驻点的定义:(要求平滑)  y=|x|; 不存在驻点; 极值点的定义: 导数不存在的点也有可能是极值点 拐点: 一二阶导数等于零各是什么意义 倒代换
  16. 华图网校 计算机网络基础,阅读以下文字,完成 26~30 题。随着计算机和网络技术的发展,特别是...
  17. 关于motionevent的使用
  18. celery:File /home/hadoop/.virtualenvs/Django01/lib/python3.7/site-packages/fdfs_client/utils.py
  19. 卡片式设计流行的秘密 — 看完这15个案例你就懂了!
  20. 使用python操作excel的xls文件和xlsx文件之间的批量导出和填充数据

热门文章

  1. Windows下配置nginx+php(wnmp)
  2. C#控制网页并自动输入
  3. 【java学习之路】(javaWeb【后端】篇)003.RequestResponse
  4. matlab中求方差的,matlab中求方差为什么除以n-1?
  5. Doris之Rollup的注意事项和常见问题
  6. MySQL 字段类型解析
  7. lcl手术和飞秒区别_关于全飞秒价格的那些事!你知道吗?
  8. 跳转定义_解决tensorflow2.0在Pycharm中的自动补全及跳转定义问题
  9. python更改数据框指定位置的数据_python – 移动数据框列并更改列顺序
  10. 去掉 edittext 长按全选_铁力连栋温室大棚骨架质量优规格全免费报价按需定制...