筛法求素数是一种利用数组的、较快地求得素数的方法。例如,我们用筛法求100以内的所有素数。
首先初始化,将2到100的所有数存到一个数组内,令a[2]=2,a[3]=3,…a[N]=N.依次从数组中筛掉2的倍数,3的倍数,5的倍数,…,sqrt(N)的倍数(所谓“筛掉”即令其为0);这个过程就是筛掉所有素数的倍数,直到a中仅剩下素数为止(剩下的不为0的数不是任何数的倍数)

#include<stdio.h>
#include<math.h>
#define N 100
void PrintPrime(int a[],int n);
void SiftPrime(int a[],int n);
int main()
{int a[N+1];SiftPrime(a,N);PrintPrime(a,N);return 0;
}
void SiftPrime(int a[],int n)
{for (int i=2;i<=N;i++){//初始化a[i]=i;}for (int i=2;i<=sqrt(N);i++){//筛for (int j=i+1;j<=N;j++){if (a[i]!=0 && a[j]!=0 && a[j]%a[i]==0){a[j]=0;}}}
}
void PrintPrime(int a[],int n)
{for (int i=2;i<=N;i++){if (a[i]!=0){printf("%d\t",a[i]);}}printf("\n");
}

运行结果

C语言-数组的趣味应用-筛法求素数相关推荐

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

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

  2. 线性筛法求素数c语言,[算法]素数筛法(埃氏筛法线性筛法)

    一.素数筛的定义 给定一个整数n,求出[1,n]之间的所有质数(素数),这样的问题为素数筛(素数的筛选问题). 二.埃氏筛法(Eratosthenes筛法) 埃氏筛法又叫做Eratosthenes筛法 ...

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

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

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

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

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

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

  6. 筛法求素数 (20分)

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

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

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

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

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

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

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

  10. 1042: 筛法求素数

    1042: 筛法求素数 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 1387  Solved: 918 [Submit][Status][Web B ...

最新文章

  1. 转载 iOS js oc相互调用(JavaScriptCore) --iOS调用js
  2. 用于视力恢复的脑机接口综述(一)(修改)
  3. VUE 路径拦截, 开放页面, 基于动态路由, 拦截器
  4. Linux下rz,sz
  5. 没有内存条电脑能开机吗_电脑没内存条能开机吗?这位朋友说他的电脑没内存条都用几年了!...
  6. Net任意String格式转换为DateTime类型
  7. pytorch之mnist数据集存放位置以及本地加载
  8. Redis小记——数据结构
  9. LeetCode:10.regular-expression-matching(正则式表达)
  10. 女生不能学理科?python+数据可视化分析15万考生的成绩,刷新了我的认知
  11. 访问某个xml的url并将网页转成字节流
  12. 3个开源TTS(三)flite的简要分析与espeak的选择
  13. 方正飞鸿FIX ES2007荣获大连软交会创新产品奖
  14. 神经网络学习——第一个代码学习
  15. 如何屏蔽百度搜索推广
  16. 宝塔一键安装部署tipask登录出现错误:The email must be at least 8 characters怎么回事
  17. 天池新人赛之新浪微博互动预测
  18. 你值得安装的24个chrome插件!!!
  19. error in ./node_modules/swagger-ui-react/swagger-ui.js
  20. 【玩转ms17-010】mysql数据库-脱裤实践

热门文章

  1. Live reload
  2. Activity 设置SingleTask模式,当栈中已有Activity实例时的生命周期
  3. html5实现手写签名板,用于电子文档签名
  4. python做的游戏有哪些
  5. 文字转语音怎么真人发声
  6. ES6 新特性(深入浅出ES6—阮一峰)
  7. Python官方文档中文版在线教程
  8. cad中tk什么意思_cad绘图tk命令技巧
  9. PCB制作仿真、自制51板测试及性能改进
  10. 【时事摘抄】(原创)既然故宫领导对错误一慨不知,认神马错?