Cod sursa(job #3297298)

Utilizator Arhiva_Educationala_2Arhiva Educationala doi Arhiva_Educationala_2 Data 22 mai 2025 13:31:44
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.47 kb
#include <stdio.h>
#include <vector>

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

  int n;
  fscanf( fin, "%d", &n );
  std::vector<bool> ciur(n + 1, false);
  for( int d = 2; d * d <= n; d++ )
    if( !ciur[d] )
      for( int i = d * d; i <= n; i += d )
        ciur[i] = true;

  int np = 0;
  for( int i = 2; i <= n; i++ )
    np += !ciur[i];

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

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