Cod sursa(job #1856088)

Utilizator adnicolaeAdrian Danut Nicolae adnicolae Data 24 ianuarie 2017 15:15:17
Problema Ciurul lui Eratosthenes Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <iostream>
#include <cstdio>
// #define NMAX (2000000 + 11)

using namespace std;

int main() {

   freopen("ciur.in", "r", stdin);
   freopen("ciur.out", "w", stdout);
   int count = 1, N;
   scanf("%d", &N);
   int ciur[N+11];
   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;
        count++;
       for(int j = i*i; j < N; j += 2*i)
       {
          ciur[j] = 1;
       }

   }

  printf("%d", count);

    return 0;
}