Cod sursa(job #146234)

Utilizator recviemAlexandru Pana recviem Data 1 martie 2008 14:15:03
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
// Ciur

#include "stdio.h"
    int n,nr=0;
    bool ciur[2000001];

void scrie(int x)
{
    if (x>1 && nr<1000)
    {
        if (!ciur[x])
        {
            nr++;
            scrie(x-1);
            printf("%d ",x);
        }
        else
            scrie(x-1);
    }
}

int main()
{
    freopen("ciur.in","r",stdin);
    scanf("%d",&n);
    fclose(stdin);

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

    int x=0;
    for (int i=2;i<n;++i)
    if (!ciur[i])
    {
        x++;
        for (int j=i*2;j<=n;j+=i)
            ciur[j]=1;
    }

    freopen("ciur.out","w",stdout);
    printf("%d\n",x);
    scrie(n);
    fclose(stdout);
    return 0;
}