筛素数
2015-06-30 22:47
429 查看
筛素数
先将数组赋值为1,再ss[0]=ss[1]=0;0和1不是素数,当数组值为1是,下标为素数,然后,将所有下标是素数的下标的倍数的值赋0。最后数组值为1的都属素数,为0的都不是素数。
速度更快,效率更高。
源代码:
#include <stdio.h> #define MAX 200 int main() { int ss[MAX+1]; int i,j; for(i=0;i<=MAX;i++) ss[i] = 1;//初始化 ss[0]=ss[1]=0;//0和1不是素数 for(i=2;i<=MAX;i++) if(ss[i]==1)//i是素数 { printf("%d ",i);//输出素数 for(j=i;j<=MAX;j+=i) ss[j]=0;//筛去i的倍数 } printf("\n"); return 0; }
相关文章推荐
- Lua和C语言的交互详解
- 关于C语言中参数的传值问题
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言内存对齐实例详解
- c语言实现的带通配符匹配算法
- C语言实现顺序表基本操作汇总
- 探讨C语言的那些小秘密之断言
- 深入探讨C语言中局部变量与全局变量在内存中的存放位置
- C语言泛型编程实例教程
- C语言中使用lex统计文本文件字符数
- 基于C语言fflush()函数的使用详解
- C语言单链队列的表示与实现实例详解
- 关于C语言除0引发的思考
- 深入分析C中不安全的sprintf与strcpy
- Lua教程(四):在Lua中调用C语言、C++的函数
- C语言求幂计算的高效解法
- C语言实现输入一颗二元查找树并将该树转换为它的镜像
- 12个关于C语言的有趣问答
- 探讨register关键字在c语言和c++中的差异