筛选法求100以内素数
2015-06-06 22:39
351 查看
范围确定时,可以通过筛选法筛选出素数。
一个标记数组a
,下标i为数,a[i]为0表示i不是素数,为1表示目前还没被筛选出来。从2的倍数开始直到sqrt(N)的倍数,一一从素数中删除,留到最后的就是素数
j从i开始增加,2*3删除了之后不用再去删3*2的
一个标记数组a
,下标i为数,a[i]为0表示i不是素数,为1表示目前还没被筛选出来。从2的倍数开始直到sqrt(N)的倍数,一一从素数中删除,留到最后的就是素数
#include<stdio.h> #include<stdlib.h> #include<math.h> #define N 101 //筛选法求100以内的素数 int main() { int i,j,a ; int sqrt_N=(int)sqrt((double)N); for(i=2;i<N;i++) a[i]=1; for(i=2;i<=sqrt_N;i++) { for(j=i;i*j<N;j++) if(a[i*j]==1) a[i*j]=0; } for(i=1;i<N;i++) if(a[i]==1) printf("%d ",i); system("pause"); return 0; }
j从i开始增加,2*3删除了之后不用再去删3*2的
相关文章推荐
- hdu5261单调队列
- 编程常用英语单词(二)
- 设计类图
- iOS NSNotificationCenter(消息机制)
- setValuesForKeysWithDictionary
- JS之——比较字符串大小(插曲)
- 软件开发团队阶段
- Unity UGUI —— 无限循环List
- 程序只启动一个实例的几种方法
- Android开发之bug-No Activity found to handle Intent
- 创建ajax对象
- 编程常用英语单词(一)
- 狂刷Android范例之1:ReadAsset
- 程序员角度--自上而下看外设
- Linux Oracle 启动
- 用工厂函数封装对象
- php数组
- with as 和group by 代替 count distinct,提高性能
- [安卓基础]pull解析
- [leetcode] Pascal's Triangle