我正在使用筛法将所有素数打印到文件中。我的代码如下:
#include <stdio.h>
#include <stdlib.h>
int main(){
FILE* file = fopen("primeList.txt","w+");
bool* x;
// long upLimit=100;
long upLimit=2000000000;
x=(bool*) calloc(1,upLimit);
long i=upLimit;
while(i--){
*(x+i)=true;
}
*(x+1)=false;
*(x+2)=true;
*(x+3)=true;
int cnum=2;
int count=0;
while(cnum<upLimit){
if(*(x+cnum)){
fprintf(file, "%d\n",cnum);
count++;
int compNum=cnum*2;
while(compNum<upLimit){
*(x+compNum)=false;
compNum+=cnum;
}
}
cnum+=1;
}
fprintf(file, "Count is : %d\n", count);
fflush(file);
fclose(file);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
outfile的最后几行如下:
我期望素数计数是最后一行。请帮忙解决这个问题。提前致谢。