<1>方法一


//判断是否是一个素数
int IsPrime(int a){
//0,1,负数都是非素数
if(a <= 1){
return 0;
}
//计算枚举上界,为防止double值带来的精度损失,所以采用根号值取整后再加1,即宁愿多枚举一个,也不愿少枚举一个数
int bound = (int)sqrt(a) + 1;
for(int i = 2;i < bound;i++){
//依次枚举这些数能否整除x,若能则必不是素数
if(a % i == 0){
return 0;
}
}
return 1;
}
<2>方法二

#define MAXSIZE 10001
int Mark[MAXSIZE];
int prime[MAXSIZE];
//判断是否是一个素数 Mark 标记数组 index 素数个数
int Prime(){
int index = 0;
mems

本文探讨了两种素数筛法,一种是基础的筛选方法,虽然直观但效率较低,因为存在重复筛除合数的问题。另一种是快速线性筛法,它优化了效率,避免了重复操作。文章提供了相关参考博文和习题练习链接,帮助读者深入理解和实践。
最低0.47元/天 解锁文章
488

被折叠的 条评论
为什么被折叠?



