Cod sursa(job #1649069)

Utilizator justsomedudePalade Thomas-Emanuel justsomedude Data 11 martie 2016 12:27:26
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include<iostream>
#include<fstream>
#include<bitset>
#define Nmax 2000009

using namespace std;

ifstream fin  ("ciur.in");
ofstream fout ("ciur.out");

int N, k;
bitset <Nmax+2> a;

void Ciur()
{
   /// a[i] = 0, daca i este prim
   /// a[i] = 1, in caz contrar

   int i, j;
   a[2] = 1;

   for (i=3; i*i<=Nmax; i=i+2)
   {
     for (j=i*i; j<=Nmax; j=j+2*i)
         a[j] = 1;
   }

   k = 1;

   for (i=3; i<=N; i=i+2)
     if (a[i] == 0)
        k++;
   fout << k << "\n";
}


int main ()
{
  fin >> N;
  Ciur();
  fin.close();
  fout.close();
  return 0;
}