Cod sursa(job #1829792)

Utilizator madalici98Madalina Pietreanu madalici98 Data 15 decembrie 2016 17:20:12
Problema Ciurul lui Eratosthenes Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.79 kb
#include <stdio.h>
#include <stdlib.h>

int main()
{
    FILE *f = fopen("ciur.in", "r");
    if (f == NULL) {
        printf("eroare fisier");
        return 0;
    }

    int *ciur;
    int N, i, j = 2, contor = 1;

    fscanf(f, "%d", &N);
    fclose(f);

    ciur = calloc(N+1, sizeof(int));
    ciur[2] = 1;
    while (j <= N/2) {
      for (i = 3; i <= N; i+=2) {
        if ( i % j == 0) {
            ciur[i] = 1;

        }
      }

      j += 1;
    }

    for(i = 3 ; i <= N; i+=2) {
        if (ciur[i] == 1) {
            contor++;
        }
    }

    FILE *g = fopen("ciur.out", "w");
    if (g == NULL) {
        printf("eroare fisier");
        return 0;
    }

    fprintf(g, "%d", contor);
    fclose(g);

    free(ciur);

    return 0;
}