Cod sursa(job #145650)

Utilizator eugen.nodeaEugen Nodea eugen.nodea Data 29 februarie 2008 09:30:16
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
# include <stdio.h>   
FILE *f=fopen("ciur.in","r"),*g=fopen("ciur.out","w");   
int P[200002];
int main()   
{   
   long N,d,i,j;   
   fscanf(f,"%ld",&N);   
   fclose(f);   
   for (i=1;i<=N;i++)   
    P[i]=1;   
   i=2;d=0;
   while(i<=N){
    while (P[i]==0)i++;
    d++;
    for (j=2;j<=N/i;j++)
    P[j*i]=0;
    i++;
   }
    j=0;
    for (i=2;i<=N;i++){
      if (P[i]) { j++;
	if (j==1000)
	break;
	}
      }
    fprintf(g,"%ld\n",d-1);   
    for (i=j;i<=N;i++)
      if (P[i]) fprintf(g,"%ld ",i);   
  fclose(g);   
  return 0;   
}