素数筛选优化模板
2011-07-21 16:30
274 查看
#include<stdio.h> #include<string.h> #include<stdlib.h> #include<math.h> #define MAXSIZE 10000000 int prim[MAXSIZE+5]; void fun() { memset(prim,0,sizeof(prim)); prim[0]=prim[1]=1; for(int i=4;i<=MAXSIZE;i+=2)//先将偶数筛掉 { prim[i]=1; } double t=sqrt(MAXSIZE);//记住t为double型 for(int i=3;i<=t;i+=2) { if(!prim[i])//一个优化,只有素数才进行以下筛选 。 { int k=i*i,p=i+i;//每次都是从k筛起,因为前面的都已近筛过了。每次加2i才仍旧为奇数。 for(int j=k;j<=MAXSIZE;j+=p) { prim[j]=1; } } } } int main() { fun(); int n; while(scanf("%d",&n)!=EOF) { for(int i=1;i<=n;i++) { if(!prim[i]) printf("%d\n",i); } } //system("pause"); return 0; }
相关文章推荐
- 素数筛选再优化模板
- 素数筛选及优化
- 线性筛选素数模板
- 素数筛选法(模板)
- poj3006 筛选法求素数模板(数论)
- 素数筛选(模板)
- 素数筛选【模板】
- 素数筛选(模板)
- 模板 素数筛选
- 筛选素数[模板]
- ACM常用素数判断筛选法及其优化
- 素数筛选模板
- WV.51-素数筛选优化
- 筛选法求素数模板
- ACdream 1112 Alice and Bob (博弈&&素数筛选优化)
- 素数表的快速建立,合数分解,1-2^31内某个长度小于10w的区间素数筛选的三个模板及解析
- ACdream 1112 Alice and Bob (博弈&&素数筛选优化)
- 线性筛选素数(模板)
- 素数筛选模板
- 素数筛选法打表模板