Cod sursa(job #1132260)

Utilizator catalincraciunCraciun Catalin catalincraciun Data 2 martie 2014 22:03:14
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
/// Craciun Catalin
///  Ciurul lui Erastostenes
///   www.infoarena.ro/problema/ciur
#include <fstream>
#include <iostream>
#include <bitset>

#define NMax 2000001

using namespace std;

ifstream f("ciur.in");
ofstream g("ciur.out");

int n;
bitset<NMax> C;

void generareCiur()
{
    C[0]=C[1]=1;
    for (int i=2;i<=n/2;i++)
    {
        if (C[i]==0)
            g<<i<<'\n';
        for (int j=i*2;j<=n;j+=i)
            C[j]=1;
    }
}

void afisare()
{
    int x=0;

    for (int i=n/2+1;i<=n;i++)
        if (C[i]==0)
            x++;

    g<<x<<'\n';
    g.close();
}

int main()
{
    f>>n;
    f.close();

    generareCiur();
    afisare();

    return 0;
}