快速线性筛法求素数一般筛法求素数代码
一般筛法求素数代码
思路:素数的倍数不是素数。
#include<iostream>
using namespace std;
const int M = 2000000;
int a[M] = {1,1};
int prime[M]={0};
int k=0;
void init()
{for(int i=2;i<=M;i++){if(!a[i]){prime[k++] = i;for(int j=i+i;j<=M;j+=i)a[j]= 1;}}
}
int main()
{int n;while(cin>>n){for(int i=0;i<n;i++)cout<<prime[i]<<" ";cout<<endl;}
}
快速线性筛法
原理:1.一个合数是由n个素数的乘积所组成的
2.素数的倍数不是素数。
建议无论手模拟一个两个过程 就明白谁原理和优势了。
#include<iostream>
using namespace std;const int Max=2000000;
long long prime[Max] = {0};
int k=0;
int a[Max]={1,1};void init()
{for(long long i=2;i<Max;i++){if(!a[i])//prime[k++] = i;for(long long j=0;j<k&&i*prime[j]<Max;j++){a[i*prime[j]] = 1;if(i%prime[j]==0)//break;}}
}int main()
{int n;init();while(cin>>n){for(int i=0;i<n;i++)cout<<prime[i]<<" ";cout<<endl;}
}
推荐:http://blog.csdn.net/dinosoft/article/details/5829550
快速线性筛法求素数一般筛法求素数代码相关推荐
- 一般筛法求素数+快速线性筛法求素数
一般筛法求素数+快速线性筛法求素数 标签: 正则表达式算法优化扩展c 2010-08-22 01:28 28738人阅读 评论(8) 收藏 举报 分类: 算法学习资料(5) 版权声明:本文为博主原 ...
- 一般筛法和快速线性筛法求素数 求素数的一点总结
素数总是一个比较常涉及到的内容,掌握求素数的方法是一项基本功. 基本原则就是题目如果只需要判断少量数字是否为素数,直接枚举因子2 ..N^(0.5) ,看看能否整除N. 如果需要判断的次数较多,则先用 ...
- 求素数: 一般线性筛法 + 快速线性筛法
From: http://blog.csdn.net/dinosoft/article/details/5829550 素数总是一个比较常涉及到的内容,掌握求素数的方法是一项基本功. 基本原则就是题目 ...
- 线性筛法求素数c语言,[算法]素数筛法(埃氏筛法线性筛法)
一.素数筛的定义 给定一个整数n,求出[1,n]之间的所有质数(素数),这样的问题为素数筛(素数的筛选问题). 二.埃氏筛法(Eratosthenes筛法) 埃氏筛法又叫做Eratosthenes筛法 ...
- 线性O(N)时间复杂度求素数 , 筛法
线性O(N)时间复杂度求素数 , 筛法 1 /* 2 线性时间求出1-N 的素数 , 时间复杂度为O( N) : 3 一个合数可以表示成若干个素数的积 4 比如说 i = 6 =2 * 3 , A = ...
- 数论 判断素数:普通素数判别 线性筛 二次筛法求素数 米勒拉宾素数检验
普通的素数判断法 当我们要判断一个数字是否是素数的时候,往往会直接看这个数字模1到这个数字的根号,看有没有等于零的,从而判断这个数字是不是素数,这样做的时间复杂度为O(sqrt(n)) bool is ...
- 快速求素数表——埃氏筛法与欧拉筛法
快速求素数表--埃氏筛法与欧拉筛法 快速求素数表埃氏筛法与欧拉筛法 埃氏筛法 埃氏筛法原理 埃氏筛法时间复杂度 埃氏筛法代码求出1000000以内的素数并且输出n个素数 欧拉筛法 欧拉筛法原理 欧拉筛 ...
- ACMNO.17C语言-筛法求素数 用筛法求之N内的素数。
题目描述 用筛法求之N内的素数. 输入 N 输出 0-N的素数 样例输入 100 样例输出 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 7 ...
- 母牛python_《Python》 母牛的故事Hello, world用筛法求之N内的素数
1:题目: 有一头母牛,它每年年初生一头小母牛.每头小母牛从第四个年头开始,每年年初也生一头小母牛.请编程实现在第n年的时候,共有多少头母牛? def f(n): f1,f2,f3=1,2,3 if ...
- 用筛法求之N内的素数
用筛法求之N内的素数. 时间限制: 1 Sec 内存限制: 64 MB 提交: 127 解决: 105 [提交][状态][讨论版][Edit] [TestData] 题目描述 用筛法求之N内的素数 ...
最新文章
- SAP WM高阶之同一个货架上相同物料不同批次的库存可以有同一个SU号码?
- 批量更新日期字段中的年
- 开始Windows Embedded Compact 7的第一个项目——虚拟机上的CEPC
- 为无LIB的DLL制作LIB函数符号输入库zz
- JMeter环境搭建
- 【Tiny4412】最小网络文件系统制作
- Object defineProperty
- mysql date timestamp_【Mysql】Datetime和Timestamp区别,及mysql中各种时间的使用
- 华为上半年收入4540亿元;GitHub服务中断,已恢复​;Python 3.8.4发布|极客头条
- “快陪练”获1000万美元Pre-A轮融资,单月营收破千万,俞敏洪跟投...
- 最小化安装CentOS 7后,图形界面的安装(GNOME、KDE等)
- 加速度传感器,磁场传感器和陀螺仪传感器案例
- 阿辉DirectX 11学习笔记一
- Qt实用技巧:自定义窗口标题栏
- c++文件的读取和写入
- 香农采样定理(奈奎斯特采样定理)
- 神途boss_神途BOSS刷新了,女玩家以身冒险前往打骨魔洞
- 用我们的奋斗和梦想扬起青春的船帆
- Qt 快速入门学习笔记
- activiti设置和使用启动人;activiti:initiator的作用及其使用