Cod sursa(job #144528)

Utilizator blasterzMircea Dima blasterz Data 27 februarie 2008 19:04:49
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.48 kb
using namespace std;
#include <cstdio>
#include <bitset>

bitset<2000001>prime;

int main()
{
    int n,i,j,nr=0;
    freopen("ciur.in","r",stdin);
    scanf("%d", &n);

    for(i=4;i<=n;i+=2) prime[i]=1;

    for(i=3;i*i<=n;i+=2)
	if(!prime[i])
	    for(j=i*i;j<=n;j+=(i<<1))
		prime[j]=1;
	

    freopen("ciur.out","w",stdout);
    for(i=2;i<=n;++i)if(!prime[i])++nr;
    printf("%d\n", nr);


    for(i=2;i<=n;++i)
	if(!prime[i]) printf("%d ", i);
    printf("\n");
    


    return 0;
}