1042: 筛法求素数

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 1387  Solved: 918
[Submit][Status][Web Board]

Description

用筛法求之N内的素数。

Input

N

Output

0~N的素数

Sample Input

100

Sample Output

2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97

HINT

基本思想是:把从1开始的、某一范围内的正整数从小到大顺序排列, 1不是素数,首先把它筛掉。剩下的数中选择最小的数是素数,然后去掉它的倍数。依次类推,直到筛子为空时结束。如有:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

1不是素数,去掉。剩下的数中2最小,是素数,去掉2的倍数,余下的数是:

3 5 7 9 11 13 15 17 19 21 23 25 27 29

剩下的数中3最小,是素数,去掉3的倍数,如此下去直到所有的数都被筛完,求出的素数为:

2 3 5 7 11 13 17 19 23 29

Source

freeproblemset

AC代码

#include <cstdio>
#include <iostream>
#include <cstring>
using namespace std;
bool is_prime[100000];
int prime[100000];
int Aishi(int n)
{int num=0;memset(is_prime,true,sizeof(is_prime));memset(prime,0,sizeof(prime));is_prime[0]=false,is_prime[1]=false;for(int i=2;i<=n;i++){if(is_prime[i]){num++;prime[num]=i;for(int j=i*2;j<=n;j+=i)is_prime[j]=false;}}return num;
}
int main()
{int n;cin>>n;int t=Aishi(n);for(int i=1;i<=t;i++)cout<<prime[i]<<endl;return 0;
}

1042: 筛法求素数相关推荐

  1. 一般筛法求素数+快速线性筛法求素数

    一般筛法求素数+快速线性筛法求素数 标签: 正则表达式算法优化扩展c 2010-08-22 01:28 28738人阅读 评论(8) 收藏 举报  分类: 算法学习资料(5)  版权声明:本文为博主原 ...

  2. CodeForce 236B Easy Number Challenge(筛法求素数 + 整数因式分解)

    题目链接:http://codeforces.com/problemset/problem/236/B Easy Number Challenge time limit per test 2 seco ...

  3. 一般筛法和快速线性筛法求素数 求素数的一点总结

    素数总是一个比较常涉及到的内容,掌握求素数的方法是一项基本功. 基本原则就是题目如果只需要判断少量数字是否为素数,直接枚举因子2 ..N^(0.5) ,看看能否整除N. 如果需要判断的次数较多,则先用 ...

  4. 素数筛法求素数(线性时间)

    摘自:http://blog.csdn.net/once_hnu/article/details/6302283 逆向思维的典型应用! 1)普通方法判断素数:O(n*sqrt(n)) 2)筛法求素数: ...

  5. 数论 判断素数:普通素数判别 线性筛 二次筛法求素数 米勒拉宾素数检验

    普通的素数判断法 当我们要判断一个数字是否是素数的时候,往往会直接看这个数字模1到这个数字的根号,看有没有等于零的,从而判断这个数字是不是素数,这样做的时间复杂度为O(sqrt(n)) bool is ...

  6. 普通素数 筛法求素数 二次筛法求素数 MillerRabin素数测试【模板】

    素数和合数共同的性质: 1.a > 1是合数,当且仅当a = b * c,其中1 < b < a,1 < c < a. 2.合数必有素数因子. 3.如果d > 1, ...

  7. 筛法求素数 (20分)

    题干: 素数是仅仅能被它本身和1整除的任何整数.筛法求素数是一种查找素数的方法.它的算法如下: 1.创建一个数组,并将所有元素初始化为1(真).具有素数下标的数组元素将保持为1,而其它数组元素最终将被 ...

  8. 筛法求素数(C语言/C++)

    什么是素数 定义 在大于1的自然数中,除了1和它本身以外不再有其他因数的数称为质数. C语言实现判断素数 int prime(int x) {for(int i=2;i*i<=x;i++){if ...

  9. Java用“埃氏筛法”求素数

    用"埃氏筛法"求素数. 先去掉2的倍数,再去掉3的倍数,再去掉4的倍数,--依此类推,最后剩下的就是素数. 要求:使用数组,使用数组的长度,使用增强的for语句 import ja ...

最新文章

  1. icp mysql_MySQL · 特性分析 · Index Condition Pushdown (ICP)
  2. ANDROID 学习笔记(二) 用户登陆问题 TOKEN SESSION 缓存
  3. React Native ios打包
  4. arm linux qt 输入法,基于ARM9和Qt的中文手写输入法的设计与实现
  5. 2017西安交大ACM小学期数论 [完全平方数]
  6. 【POJ - 3249】Test for Job(DAG线性求带负权的最长路,dp)
  7. go 写文件_GO 文档笔记
  8. 多种方法实现二叉树的先序、中序、后序、层序遍历
  9. insert into 语句 mysql_sql insert into 语句
  10. 基于Flink建设流批一体实时数仓
  11. 电容或电感的电压_电容与电感的对偶性小结
  12. 华为2021届实习面试(技术面+主管面)
  13. Windows下的Rsync(cwRsync)
  14. Dynamic Memory Tensor Networks笔记
  15. 企业如何做好数据防泄漏需求分析
  16. 十八、绘制游戏背景图片
  17. 论文解读:6mA-Pred: identifying DNA N6-methyladenine sites based on deep learning
  18. 如何做RAID5之图解
  19. 点计算机图标就自动关机了,为什么点计算机的关机图标不能自动关机
  20. 云盘数据库设计mysql_一份最实用的云数据库架构设计与实践指南(内含PPT)

热门文章

  1. java铃声类_java多线程抓取铃声多多官网的铃声数据
  2. qt使用自带的日志输出实例输出日志时,在日志中显示行数
  3. C语言 __FILE__ - C语言零基础入门教程
  4. BugkuCTF-WEB题矛盾
  5. c语言十六进制字符串转整数,C语言-提取字符串中的十六进制数字并转换为一个十进制整数输出...
  6. python环境介绍_Python介绍以及Python环境搭建
  7. php 如何配置 redis,php 如何设置redis
  8. 哈尔滨大学计算机和金融,山东153所大学最新排名,46所公办本科,看看有你喜欢的吗...
  9. java爬虫post 404_POST 后台404错误
  10. arraylist扩容是创建新数组吗 java_arraylist扩容机制要怎么实现?arraylist怎么扩容...