Cod sursa(job #1856112)

Utilizator adnicolaeAdrian Danut Nicolae adnicolae Data 24 ianuarie 2017 15:37:02
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 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;
   ciur[2] = 0;
   for(int  i=3; i<=N; i+=2) 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(long long j = 1LL*i*i; j <= N; j += 2*i)
       {
          ciur[j] = 1;
       }

   }

  printf("%d", counter);

    return 0;
}