快速查找素数

时间限制:1000 ms  |  内存限制:65535 KB
难度:3
描述
现在给你一个正整数N,要你快速的找出在2.....N这些数里面所有的素数。

输入
给出一个正整数数N(N<=2000000)
但N为0时结束程序。
测试数据不超过100组
输出
将2~N范围内所有的素数输出。两个数之间用空格隔开
样例输入
5
10
11
0
样例输出
2 3 5
2 3 5 7
2 3 5 7 11

cpp:

#include<stdio.h>
#define N 2000002
int prime[N]={0,0};
int main()
{int i,j,n=0;for(i=2;i<N;i++)  prime[i]=1;for(i=2;i<N;i++){if(prime[i]==1){for(j=2*i;j<N;j=j+i)prime[j]=0;}}while(scanf("%d",&n)!=EOF){if(n>1){for(j=2;j<=n;j++)if(prime[j]==1)printf("%d ",j);printf("\n"); }}return 0;
}

筛法:一种简单检定素数的算法。

1.求100之内的素数。

思想:

用筛法求素数的基本思想是:把从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
#include<stdio.h>
#include<math.h>
int main()
{int a[101],i,j;for(i=1;i<=100;i++)a[i]=i;a[1]=0;for(i=2;i<=100;i++)if(a[i]!=0)for(j=i+1;j<=100;j++)if(a[j]!=0&&a[j]%a[i]==0)a[j]=0;for(i=2;i<=100;i++)if(a[i]!=0)printf("%d ",a[i]);return 0;
}

nyoj187 快速查找素数相关推荐

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

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

  2. NYOJ 187 快速查找素数

    原题链接 打表. 附ac代码: #include <stdio.h> #include <math.h> #define MAX 2000000 + 2 int a[MAX] ...

  3. 快速查找计算9百万万亿整数内全部素数(质数)的C++代码

    用素数筛查找小于等于某个给定整数的全部素数,是一种较为高效的方法,具体的原理网上很多,这里就不赘述了. 但即使都是运用的素数筛原理,不同的算法设计,也可以带来巨大的效率差异.最近从网上搜索学习了相关的 ...

  4. VB快速查找大型文件中包含的字符串

    关于查找大型文件中包含的字符串,一般都把文件内容读入到内存,然后在内存里进行比较,却不知这种办法有一个致命的弱点,那就是由于大量的内存申请和释放导致的内存颠簸,会使系统性能下降,严重影响了查找的速度. ...

  5. 关于快速寻找素数的方法

    利用素数筛选法进行素数的快速查找. 原理很简单,素数一定是奇数,素数的倍数一定不是素数. 思路如下: 预定义N表示10000,即表示查找10000以内的素数,首先定义数组prime[]对N以内的数进行 ...

  6. Rabin-Karp 算法(字符串快速查找)

    Rabin-Karp 算法(字符串快速查找) 算法 代码 算法 Go 语言的 strings 包(strings.go)中用到了 Rabin-Karp 算法.Rabin-Karp 算法是基于这样的思路 ...

  7. java快速查找算法_Java实现的快速查找算法示例

    本文实例讲述了Java实现的快速查找算法.分享给大家供大家参考,具体如下: 快速查找算法,可以根据想要找的是第几个大的数,每次循环都能固定下来一个数在数组完整排完序之后的位置,每次循环都能定一个数的位 ...

  8. python使用heapq快速查找最大或最小的 N 个元素

    python使用heapq快速查找最大或最小的 N 个元素 heapq实现了一个适合与Python的列表一起使用的最小堆排序算法. 堆是非线性的树形的数据结构,有两种堆,最大堆与最小堆.( heapq ...

  9. Kali渗透测试——快速查找Metasploit的模块

    快速查找Metasploit的模块 在渗透测试过程中,通过NMAP可以获取目标主机服务和操作系统信息:通过Nessus和OpenVAS可以获取目标主机存在的漏洞:或者,通过其他工具获取到关键信息.这时 ...

最新文章

  1. 一步步教你编写redactor的插件
  2. boost::function_types::is_function用法的测试程序
  3. 爬虫 spider12——暂停小总结_爬虫流程_微服务架构流程
  4. 旧知识打造新技术--AJAX学习总结
  5. 解决 吃货阶段02 0928
  6. 转:Python: 什么是*args和**kwargs
  7. 无意间发现我的博客园的年龄有11年了
  8. 【leetcode】1053. Previous Permutation With One Swap
  9. python精度_通过Python可以达到的最高时间精度范围是多少?
  10. ionic3 打包错误解决:Could not resolve all files for configuration ':classpath'.
  11. 一看就懂的字符串匹配算法 之 BF算法(暴力匹配)
  12. [SageMath] 关于SageMath本地环境的搭建与基本使用
  13. 雷军:《我十年的程序员生涯》系列之二:我赚的第一桶金
  14. 计算机学院特色迎新标语,有创意的迎新,计算机学院用代码写迎新条幅,学弟学妹表示一脸懵...
  15. 使用动态规划算法需要满足的必要条件:优化原则
  16. WSA微软官方安装教程(ADB安装教程)
  17. 中枢神经系统解剖结构图,神经系统的解剖结构
  18. 儒猿秒杀季!微服务限流熔断技术源码剖析与架构设计
  19. cocos creater 鸿蒙 音频卡死 播放失败 不回调
  20. Spring事务报错: org.springframework.transaction.UnexpectedRollbackException

热门文章

  1. 61条Java面向对象设计的经验原则
  2. [紧急问题和解决方案] 无法打开被权限管理服务(RMS)加密的Office 2003文档
  3. 网络规划设计师考试说明
  4. Loading页的实现代码
  5. 设计模式常见面试真题详解
  6. 面向对象设计启发规则
  7. python 流式计算框架_流式计算的三种框架:Storm、Spark和Flink
  8. 整理一些完全免费开放的API接口
  9. java看图_看图吧,Java
  10. matlab图像输出表格_matlab 图像输出3维字