Cod sursa(job #145953)

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