Cod sursa(job #145695)

Utilizator eugen.nodeaEugen Nodea eugen.nodea Data 29 februarie 2008 10:45:19
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");
char P[200005];
long A[2000];
int main()   
{   
   int i,j;
   long d,N;
   fscanf(f,"%ld",&N);
   fclose(f);   
   for (i=1;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,"%ld ",A[i]);
  fclose(g);
  return 0;   
}