我自己写的欧拉筛有毛病
  • 板块学术版
  • 楼主KarlWan
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/9/20 16:26
  • 上次更新2024/9/20 19:00:51
查看原帖
我自己写的欧拉筛有毛病
1073879
KarlWan楼主2024/9/20 16:26

RT

  • 我用notprime来标记,即“一个数不是质数”,因为这样就不用初始化

  • 我用vector存质数

  • 代码里面cout都是调试输出,不用管

问题:9没被筛掉。

代码如下:

const int N=5e6+5;
bool notprime[N];
vector<int> prime;
void shai()
{
    prime.reserve(1000);
    notprime[0]=notprime[1]=1;
    int n=40;
    for(int i=2;i<=n;i++)
    {
        if(notprime[i]) continue;
        prime.push_back(i); 
        cout<<i<<"("<<prime.size()<<")"<<':'; 
        for(int j=0;j<int(prime.size());j++)
        {
            if(i%prime[j]==0) {cout<<"brk";break;}
            notprime[i*prime[j]]=1;
            cout<<i*prime[j]<<' ';
        }
        cout<<'\n';
    }
}

谢dalao

2024/9/20 16:26
加载中...