Cod sursa(job #1700306)

Utilizator TincaMateiTinca Matei TincaMatei Data 9 mai 2016 23:46:04
Problema Ciurul lui Eratosthenes Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.48 kb
#include <stdio.h>
#define MAX_N 2000000

char ciur[1+MAX_N];

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

  FILE *fout = fopen( "ciur.out" , "w" );
  fprintf(fout, "%d", prime);
  fclose( fout );
  return 0;
}