Cod sursa(job #2090844)

Utilizator Teodor.mTeodor Marchitan Teodor.m Data 18 decembrie 2017 19:44:54
Problema Ciurul lui Eratosthenes Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.55 kb
#include <stdio.h>

FILE *in;
FILE *out;

const int NMax = 2e6 + 5;

bool prim[NMax];

void Ciur(int n)
{
  int i, j, ans = 1;

  for(i = 2; i <= n; ++i)
    prim[i] = true;

  for(i = 4; i <= n; i += 2)
    prim[i] = false;

  for(i = 3; i <= n; i +=2)
    if(prim[i] == true) {
      ans++;
      for(j = 2 * i; j <= n; j += i)
          prim[j] = false;
    }

  fprintf(out, "%d\n", ans);
}

int main()
{
	in = fopen("ciur.in", "r");
	out = fopen("ciur.out", "w");
  
  int n;
  fscanf(in, "%d", &n);

  Ciur(n);

  fclose(in);
  fclose(out);
  return 0;
}