麻烦使用eratosthenes筛

时间:2015-09-02 08:19:34

标签: c++ algorithm sieve-of-eratosthenes

给定数k,我必须找到不是素数的最小数,并且不与前k个素数相除。我使用了eratosthenes算法的筛子,但我总是得到结果1.我不明白为什么因为从2开始。有什么建议吗?

#define lim 100000
#include <fstream>
using namespace std;

bool prim [lim];
int i,j,k,c,n;

fstream f("prim.in");
ofstream g("prim.out");

int main()
{
  f>>k;
  for(i=2;i<=lim;i++)
  {
    if(prim[i]==0)
    {
      c++;
      for(j=i*2;j<=lim;j+=i)
        prim[j]=1;
    }
    if(prim[i]==0)
      if(c==k+1) { g << i*i; return 0;}
  }
}

0 个答案:

没有答案