Cod sursa(job #2175811)

Utilizator mihailescu_eduardMihailescu Eduard-Florin mihailescu_eduard Data 16 martie 2018 19:12:53
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include <fstream>
#include <bitset>
#define NMAX 2000001

using namespace std;
bitset<NMAX> ciur;
ifstream fin("ciur.in");
ofstream fout("ciur.out");
int n;

void creeaza(int x)
{
    for(int i = 3; i * i<= x;i+=2)
    {
        if(ciur[i] == 0)
            for(int j = i * i; j<= x; j+= 2 * i)
                ciur[j]=1;
    }
}
int main()
{
    fin >>n;
    creeaza(n);
    int ct=1;
    for(int i =3; i<= n;i+=2)
    {
        if(ciur[i]==0)
            ct++;
    }
    fout << ct;
    return 0;
}