Cod sursa(job #3175761)

Utilizator dimulescu_daviddimulescu dimulescu_david Data 26 noiembrie 2023 13:24:20
Problema Ciurul lui Eratosthenes Scor 30
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.52 kb
#include <stdio.h>
#include <stdlib.h>

char ciur[ 2000001 ];
int nrprim[ 2000000 ];

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