Cod sursa(job #145273)

Utilizator savimSerban Andrei Stan savim Data 28 februarie 2008 17:39:21
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <stdio.h>
int main()
{
	int np,i,j,n,nr;
    int v[1010];
	bool prim[2000010];

    
    freopen("ciur.in","r",stdin);
    freopen("ciur.out","w",stdout);
    
    scanf("%d",&n);    

	for (i=0; i<=n+1; i++) prim[i]=0;

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

    printf("%d\n",np);
    np=0;
    for (i=n; i>=2; i--)
    {
        if (prim[i]==0)    
        {
           np++;
           v[np]=i;
           if (np>1000) 
           {
               np--;
               break;         
           }
        }
    }

    for (i=np; i>=1; i--)
        printf("%d ",v[i]);
    printf("\n");
    return 0;    
}