题目

用埃拉托色尼筛选法求素数,n(<1000)由用户输入。每行输出5个;

原理

首先将0、1排除:

对于初始队列{2,3,4,5,6,7,8,9,10,11,12,13,14……n},操作步骤如下:

(1)输出最小的素数2,然后筛选掉2的倍数,剩下{3,5,7,9,11,13,……}

(2)输出最小的素数3,然后筛选掉3的倍数,剩下{5,7,11,13,……}

(3)输出最小的素数5,然后筛选掉5的倍数,剩下{7,11,13,……}

继续上面步骤,直到队列为空。

代码

#include <stdio.h>
#include <math.h>int main(){int prime[1001];int count=0,n;printf("请输入一个>2的整数:");scanf("%d",&n);for(int i=0;i<=n;i++){prime[i]=1;                            //初始化所有的数为素数 因为经过前一次筛选,后面第一个剩下的数一定是素数}for(int i=2;i<=sqrt(n);i++){               //从第一个素数2开始筛选if(prime[i]){                          //如果是素数for(int j=2*i;j<=n;j+=i){          //则剔除掉它的倍数prime[j]=0;}}}for(int i=2;i<=n;i++){if(prime[i]){count++;printf("%-4d ",i);if(count%5==0)putchar('\n');}}printf("count=%d",count);return 0;
}

运行示例

请输入一个>2的整数:60
2    3    5    7    11
13   17   19   23   29
31   37   41   43   47
53   59   count=17

C语言 埃氏筛法求素数相关推荐

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

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

  2. 埃氏筛法求素数(C语言)

    问题要求: 用埃氏筛法求100000以内的素数,并输出总个数. 知识简介: 埃氏筛法,全名埃拉托斯特尼筛法,也叫爱氏筛法,是一种由希腊数学家埃拉托斯特尼所提出的一种简单检定素数的算法. 要得到 自然数 ...

  3. 用“埃氏筛法”求2~10000以内的素数。2~100以内的数,先去掉2的倍数,再去掉3的倍数,再去掉5的倍数,……依此类推,最后剩下的就是素数。

    需求:用"埃氏筛法"求2-100以内的素数.2-100以内的数,先去掉2的倍数,再去掉3的倍数,再去掉5的倍数,--依此类推,最后剩下的就是素数.(JAVA语言编写) 埃氏筛选:要 ...

  4. 【中国大学MOOC】java程序设计-week3-用“埃氏筛法”求2~100以内的素数

    1.题目 用"埃氏筛法"求2-100以内的素数.2-100以内的数,先去掉2的倍数,再去掉3的倍数,再去掉5的倍数,--依此类推,最后剩下的就是素数. 要求使用数组及增强的for语 ...

  5. Week 2互评作业:用“埃氏筛法”求2~100以内的素数。2~100以内的数,先去掉2的倍数,再去掉3的倍数,再去掉5的倍数,……依此类推,最后剩下的就是素数。

    用"埃氏筛法"求2-100以内的素数.2-100以内的数,先去掉2的倍数,再去掉3的倍数,再去掉5的倍数,--依此类推,最后剩下的就是素数. 要求使用数组及增强的for语句. pa ...

  6. Week3 互评作业:用“埃氏筛法”求2~100以内的素数。java实现

    问题描述 用"埃氏筛法"求2-100以内的素数.2-100以内的数,先去掉2的倍数,再去掉3的倍数,再去掉5的倍数,--依此类推,最后剩下的就是素数. 要求使用数组及增强的for语 ...

  7. C++Eratosthenes埃氏筛法获取素数列表的实现算法(附完整源码)

    C++Eratosthenes埃氏筛法获取素数列表的实现算法 C++Eratosthenes埃氏筛法获取素数列表的实现算法完整源码(定义,实现,main函数测试) C++Eratosthenes埃氏筛 ...

  8. 埃氏筛法求质数(例如:200以内的质数)

    传统求质数 全部遍历,是否有因数可以整除 private boolean isPrime(int n){if(n < 2){return false;}if(n == 2 || n == 3 | ...

  9. 埃氏筛法(素数筛选)

    代码如下: //Wecccccccc //2021.1.6 #include <iostream> using namespace std; int vis[100000]; //0为素数 ...

最新文章

  1. 10篇顶会paper,入选微软学者,上海交大吴齐天的科研思考!
  2. AI人才「用工荒」如何解决?看看这几家顶级公司的应对策略
  3. C#进行MapX二次开发之控件基本操作
  4. CVE-2018-4878
  5. 6款实用开源报表工具 | 码云周刊第 83 期
  6. Wi-Fi速度慢的十个原因以及解决办法
  7. Spring Cloud【Finchley】-05使用配置文件自定义Ribbon Client
  8. 正则匹配class并替换整个class为空
  9. inner join on, left join on, right join on的区别与介绍
  10. C#异步编程看这篇就够了
  11. 如何将文件拷贝服务器上,如何将文件复制到云服务器上
  12. git提交代码到github
  13. 拓端tecdat|R语言对BRFSS数据探索回归数据分析
  14. 让VMware功能增強的三款辅助工具
  15. Redis之利用锁机制来防止缓存过期产生的惊群现象
  16. 2018我读过的那些书
  17. 金字塔原理——表达的逻辑
  18. matlab图像噪声处理,基于matlab图像处理的去噪处理.doc
  19. 图片压缩导致IOS内存不足导致崩溃
  20. layuiTable固定列

热门文章

  1. 基于51单片机的红外自动避障小车(lunwen+任务书+开题+文献综述+翻译及原文+避障程序)
  2. 互联网行业常用数据分析指标
  3. 用Java写了一个类QQ界面聊天小项目,可在线聊天(附源码)
  4. springboot+vue+elementui实现前后端分离的网上商城购物系统
  5. 论文写作中常用工具和格式排版
  6. Linux自学笔记 | 10 常用命令 - 压缩解压类
  7. 优化函数SGD/AdaGrad/AdaDelta/Adam/Nadam
  8. 渗透测试入门教程(非常详细),从零基础入门到精通,看完这一篇就够了
  9. python 实现的 snmptrap 接收器
  10. CANopen从站伺服配置报文及使用