Cod sursa(job #151579)

Utilizator mircea_infoSuciu Mircea-Gabriel mircea_info Data 8 martie 2008 13:47:43
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <stdio.h>

int a[2000002],n,nr=0,z[1002];

int main(){
           int i,j;
           freopen("ciur.in","r",stdin);
           freopen("ciur.out","w",stdout);
           scanf("%d",&n);
           for(i=2;i<=n;i++)
               a[i]=1;
           for(i=2;i<=n;i++)
               if(a[i]==1){
                   z[++nr]=i;
                   for(j=i+i;j<=n;j+=i)
                       a[j]=0;
               }
           printf("%d\n",nr);
           if(nr<=1000){
               for(i=2;i<=n;i++)
                   if(a[i]==1)
                       printf("%d ",i);
           }
           else
               for(i=nr-1000+1;i<=nr;i++)
                   printf("%d ",z[i]);
           fclose(stdout);
           return 0;
}