C语言求素数方法
2019-10-14 23:20
183 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_44912697/article/details/102558863
C语言求素数方法
确定性算法
缺点:慢
- 试除法
//1.试除法 int is_prime(int n) { int i; if(n<=1) return 1; //1表示素数 for(i = 2; i < n; i++) // for(i = 2; i*i <n;i++) //改进版 { if(n%i == 0) return 0; } return 1; }
- Eratosthenes求素数方法
//2.Erathosthens求素数方法 #denfine MAXNUM 1000 int main() { int i ,j; int prime[MAXNUM+1]; //定义保存素数的数组 //初始化数组 for(i = 2;i <= MAXNUM;i++) { prime[i] = 1; } for(i = 2;i*i <= MAXNUM;i++) { if(prime[i] ) { for(j = i*2; j*j <=MAXNUM;j++) { if(!prime[j] ) continue; //判断是否是合数 if(j%i == 0) prime[j]=0; //判断质因数是否为i,即是否是素数 } } } int c=0; for(i = 2; i < MAXNUM;i++) { if(prime[i]) printf("%d",i); c++; } printf("共有%d个素数",c); }
随机算法<
3ff7
/strong>
优点:快
涉及较多数学定理,数学性较强
详见blog素数测试与随机算法
参考资料:《程序员的数学思维修炼》
相关文章推荐
- C语言两种求素数的方法
- c语言:实现对于给定的正整数N,依次打印出小于等于N的所有素数。两种方法及其优化
- c语言:实现对于给定的正整数N,依次打印出小于等于N的所有素数。两种方法及其优化
- C语言求素数的两种方法
- C语言求素数/质数最高效的方法
- 用C语言打印101~200之间的素数(两种方法)
- C语言实现2~n之间的素数判断的三种方法
- C语言判断素数(求素数)(两种方法)(第二种没看懂Kkkkk有空一定搞明白)(非原创)
- 输出100到200中所有的素数(c语言,3种方法)
- C语言写素数的几种方法(菜鸟级别的)
- 李洋疯狂C语言之求素数的方法
- 用C语言编写,求100-200的所有素数。(两种方法)-----编译环境(VC6.0)
- C语言实现打印1000以内素数的三种基本方法
- c语言求素数的方法——总结
- <C语言>如何一步一步根据简单的代码联想到更多的功能?(实现输入一个整数,输出比它小包括它本身的所有素数。)
- c语言图片不初始化解决方法?
- 用C语言和汇编语言实现将1个整数分解成几个素数的乘积
- 求大于整数m且紧靠m的k个素数 及 判断一个数是否为素数的方法
- 素数打表方法比较
- C语言中fflush函数的使用方法