c语言函数fun判断素数 c语言编写一个函数判断素数( 二 )


如果是求类似于1000以内有多少个素数的话,每个素数的判断方式就不是判断是否能整除从2开始到该数的开方,而是判断是否能整除从2开始到该数开方之间的素数 。这样效率会高很多 。
C语言判断素数数就是素数..
#includestdio.h
#includemath.h
main(){
int n,j,sum=0;
for(n=3;n=300000;n+=2){
for(j=2;j=sqrt(n)-1;j++){
if((n%j)==0) break;
}
if(jsqrt(n)-1){
printf("%d,",n);
sum=sum+1;
}
}
printf("\nsum=%d\n",sum);
}
这个程序是找出3到300000内的所有素数...也可以根据你的范围修改程序上面程序中300000的值!值的一提的是这个程序运行的时间5秒左右,因为利用了初等数论和筛选法......直接把偶数(大于3)去掉不做判断..如果用穷举法(举个例:300000中最大的素数为299993,运行到这个数时是将299993从2开始除一直到299992才判断结束!这就说就是这一个数就做了判断299992次判断.而300000内的素数有26121个..)程序运行时间要2分多钟!!!!我在本机上测试过..可见程序的算法是多么重要..
关于c语言函数fun判断素数和c语言编写一个函数判断素数的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息 , 记得收藏关注本站 。

推荐阅读