Eratosthenes筛选法(C++版)
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++版)相关推荐
- Eratosthenes筛选法
比起C++版,有点太费空间,弃用.参见:Eratosthenes筛选法(C++版). Sieve of Eratosthenes 使用埃拉托斯特尼筛选法计算小于100000的素数. 埃拉托斯特尼筛选法 ...
- 素数与线性筛选法初级版
今天我们来学习一些关于素数和线性筛选法的知识,这类问题在ACM-ICPC中常常遇到,所以很有必要学好它. 首先,来看素数筛选的一个题. 题目:http://codeforces.com/problem ...
- 分拆素数和【筛选法】
问题链接:HDU2098分拆素数和 问题简述:哥德巴赫猜想说,大于2的偶数可以分解成两个素数之和.该问题求分解个数. 问题分析:解决本问题,首先用Eratosthenes筛选法求得必要的素数,然后用试 ...
- Bailian3143 验证“歌德巴赫猜想”【筛选法】
3143:验证"歌德巴赫猜想" 总时间限制: 1000ms 内存限制: 65536kB 描述 验证"歌德巴赫猜想",即:任意一个大于等于6的偶数均可表示成两个素 ...
- UVA12542 LA6149 Prime Substring【筛选法+贪心】
Given a string of digits, your task is to find the largest prime number which presents in that strin ...
- 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. ...
- 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 ...
- UVA10168 Summation of Four Primes【筛选法】
Euler proved in one of his classic theorems that prime numbers are infinite in number. But can every ...
- NUC1019 数素数【素数筛选法】
数素数 时间限制: 1000ms 内存限制: 65536KB 问题描述 素数是的只能被1和它本身整除的自然数.判断一个数是素数的方法是使用2到该数的平方根的素数除它,若有能整除的则该数不是素数. 输入 ...
最新文章
- AI每日看点 | 吉利收购飞行汽车公司;传华为暂停向高通支付专利费;高通拒绝博通收购邀约
- 使用DispatchAction类,为你的系统减肥!
- eclipse——jsp字体设置
- 声音对比处理_厨房垃圾处理器 | 厨余垃圾分类的正确打开姿势
- python numba.jit(该装饰器用于将Python函数编译为本机代码、python运算加速器)
- 调整了canvas的高度页面变化后还原_Python GUI编程入门(25)-移动Canvas对象
- xp2003服务器怎么安装系统,UEFI里启动Windows XP/Server 2003 x86教程
- C#生成新浪微博短网址 示例源码
- LeetCode206:Reverse Linked List
- 校验码(海明校验,CRC冗余校验,奇偶校验)
- java获取C盘下的隐藏目录文件名称
- 任晶磊:如何看待程序员在 GitHub 发起抗议互联网公司实行 996 工作制网站?
- Python 爬虫 PhantomJs 获取JS动态数据
- MySQL树结构查询所有叶子节点
- 驻点的定义:(要求平滑) y=|x|; 不存在驻点; 极值点的定义: 导数不存在的点也有可能是极值点 拐点: 一二阶导数等于零各是什么意义 倒代换
- 华图网校 计算机网络基础,阅读以下文字,完成 26~30 题。随着计算机和网络技术的发展,特别是...
- 关于motionevent的使用
- celery:File /home/hadoop/.virtualenvs/Django01/lib/python3.7/site-packages/fdfs_client/utils.py
- 卡片式设计流行的秘密 — 看完这15个案例你就懂了!
- 使用python操作excel的xls文件和xlsx文件之间的批量导出和填充数据
热门文章
- Windows下配置nginx+php(wnmp)
- C#控制网页并自动输入
- 【java学习之路】(javaWeb【后端】篇)003.RequestResponse
- matlab中求方差的,matlab中求方差为什么除以n-1?
- Doris之Rollup的注意事项和常见问题
- MySQL 字段类型解析
- lcl手术和飞秒区别_关于全飞秒价格的那些事!你知道吗?
- 跳转定义_解决tensorflow2.0在Pycharm中的自动补全及跳转定义问题
- python更改数据框指定位置的数据_python – 移动数据框列并更改列顺序
- 去掉 edittext 长按全选_铁力连栋温室大棚骨架质量优规格全免费报价按需定制...