您的位置:首页 > 其它

素数筛选法

2010-03-02 19:30 134 查看
思想是这样的:

比如求100,000以内素数个数,

定义一个bool型变量(c里不能定义bool型),bool prime[100001](长度比10,000大1);

当i%2==1时,prime[i]=true;否则,prime[i]=false;

i=3,j=2*i,对下标为3的倍数的prime[j]赋false;

i自增,重复第3步;

total=0; if(prime[i]) total++。

memset(prime,true,sizeof(prime));
prime[0]=false;
prime[1]=false;
for(i=4;i<1300000;i+=2)
prime[i]=false;
for(i=3;i<1140;i+=2)
if(prime[i])
for(j=i*2;j<1300000;j+=i)
prime[j]=false;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: