Cod sursa(job #149064)

Utilizator dexter_dexMutascu Adrian - Dragos dexter_dex Data 5 martie 2008 11:47:55
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <stdio.h>

long long n,i,j,m,w=0,sol[1030];

char prim[2000030];
int main()
{

FILE *f=fopen("ciur.in","r");
fscanf(f,"%d",&n);
fclose(f);

for (i=2;i<=n;i++)
     prim[i]=1;
for (i=2;i<=n;i++)
	if (prim[i]==1)
	{
	 m++;
	 for (j=2*i;j<=n;j=j+i)
	      prim[j]=0;
	}

FILE *g=fopen("ciur.out","w");
fprintf(g,"%d\n",m);

 for (i=n;i>1;i--)
	if (prim[i]==1)
	{w++;
	 sol[w]=i;
	    if (w==1000)
		break;
	}

 for (i=w;i;i--)
     fprintf(g,"%d ",sol[i]);

fclose(g);

/*if (n>1002)
    {while (w<=1000)
     i=n;
       if (prim[i]==1)

	fprintf(g,"%d ",i);

     i--;w++;}
else {for (i=2;i<=n;i++)
	 if (prim[i]==1)
	 fprintf(g,"%d ",i);
	 }*/

fclose(g);

return 0;
}