Cod sursa(job #1806909)

Utilizator bobotheslayerBogdan Zaharia bobotheslayer Data 15 noiembrie 2016 20:24:26
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include<cstdio>

bool prim[2000001];
int n;

int main() {
  FILE *fin, *fout;
  fin = fopen("ciur.in", "r");
  fout = fopen("ciur.out", "w");
  fscanf(fin, "%d", &n);
  
 
  prim[0] = prim[1] = false;
  for (int i = 2; i <= n; ++i) {
    
    prim[i] = true;
  }
  
  for (int i = 2; i * i <= n; ++i) {
    
    if (prim[i] == true) {
     
      for (int j = i * i; j <= n; j = j + i) {
        
        prim[j] = false;
      }
    }
  }
  
  int num = 0;
  for (int i = 2; i <= n; ++i) {
    if (prim[i] == true) {
      num++;
    }
  }
  
  fprintf(fout, "%d", num);
  
  fclose(fin);
  fclose(fout);
}