给定数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;}
}
}