c语言求素数以及改进算法
代码需要使用c99编译
#include #include #include //是否为素数//从2到x-1测试是否可以整除 //时间复杂度O(n-2),n趋向正无穷int isPrime(int x){ int ret = 1; for(int i = 2; i < x; i++) { if(x % i == 0) { ret = 0; break; } } return ret;}//除了2以外,所有的偶数都不是素数,从3到x-1,每次加2 //x为偶数时间复杂度O((n-3)/2+1)//x很大时时间复杂度接近于(n/2)int isPrime2(int x){ int ret = 1; if(x == 1 || (x % 2 ==0 && x != 2)) ret = 0; for (int i = 3; i < x; i += 2) { if( x % i == 0) { ret = 0; break; } } return ret;}//无须到x-1,到sqrt(x) //时间复杂度O(Log2n) 即sqrt(x) int isPrime3(int x){ int ret = 1; if(x == 1 || x % 2 == 0 && x != 2) ret = 0; for(int i = 3 ; i < sqrt(x); i += 2) { if( x % i == 0) { ret = 0; break; } } return ret;}//判断是否能被已知的且
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。