Cod sursa(job #1856092)

Utilizator adnicolaeAdrian Danut Nicolae adnicolae Data 24 ianuarie 2017 15:20:25
Problema Ciurul lui Eratosthenes Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <iostream>
#include <cstdio>

#define NMAX (2000000 + 11)

using namespace std;

int counter, N;
char ciur[NMAX];

int main() {

   freopen("ciur.in", "r", stdin);
   freopen("ciur.out", "w", stdout);

   scanf("%d", &N);
    counter =1;
   ciur[1] = 1;
   for(int  i=2; i<=N; ++i) ciur[i] = 0;

   for(int  i=4; i<=N; i+=2) ciur[i] = 1;
    for(int i=3; i<=N; i+=2)
   {
        if (ciur[i] == 1) continue;
        counter++;
       for(int j = i*i; j < N; j += 2*i)
       {
          ciur[j] = 1;
       }

   }

  printf("%d", counter);

    return 0;
}