Cod sursa(job #1829762)

Utilizator madalici98Madalina Pietreanu madalici98 Data 15 decembrie 2016 16:59:07
Problema Ciurul lui Eratosthenes Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.78 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 = 0;

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

    ciur = (int*) calloc(N+1, sizeof(int));

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

        }
      }

      j += 1;
    }

    for(i = 2 ; i <= N; i++) {
        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;
}