Cod sursa(job #151228)

Utilizator drigishCiordas Dragos drigish Data 7 martie 2008 22:22:22
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include<iostream>
#include<stdio.h>
using namespace std;

long long i,n,a[2000000],j;


main ()
{
     freopen("ciur.in","r",stdin);
     cin>>n;
     fclose(stdin);
     freopen("ciur.out","w",stdout);
     a[0]=1; a[1]=1;a[2]=1;
     i=2;
     for(j=2; j<=n/2; j++)
        a[i*j]=1;
     do
     {
             if (a[i]==0) 
             {
                          for(j=i; j<=n/i; j++)
                            a[i*j]=1;
             }
             i++;             
     } while(i<=n);     
     int s=1;
     for(i=3; i<=n; i++)
              if(!a[i]) s++;
     cout<<s<<endl;
     cout<<2; for(i=3; i<=n; i++) if(!a[i]) cout<<' '<<i;
     fclose(stdout); return 0;
}