Cod sursa(job #2695246)

Utilizator mircea_007Mircea Rebengiuc mircea_007 Data 12 ianuarie 2021 11:19:57
Problema Ciurul lui Eratosthenes Scor 100
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.49 kb
#include <stdio.h>

#define MAXN 2000000

char ciur[MAXN + 1];

int main(){
  FILE *fin  = fopen("ciur.in",  "r");
  FILE *fout = fopen("ciur.out", "w");

  int n, d, i, nrp;

  fscanf(fin, "%d", &n);

  ciur[0] = ciur[1] = 1;// nu sunt prime
  for( d = 2 ; d * d <= n ; d++ )
    if( !ciur[d] )
      for( i = d * d ; i <= n ; i += d )
        ciur[i] = 1;

  nrp = 0;
  for( i = 2 ; i <= n ; i++ )
    nrp += (1 - ciur[i]);

  fprintf(fout, "%d\n", nrp);

  fclose(fin);
  fclose(fout);
  return 0;
}