Cod sursa(job #1473430)

Utilizator raulvasileRaul Vasile raulvasile Data 19 august 2015 13:34:58
Problema Ciurul lui Eratosthenes Scor 90
Compilator c Status done
Runda Arhiva educationala Marime 1.02 kb
/* Author: Raul Vasile
 * Mail: [email protected]
 */

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

// Rezolvare problema
int solve(int n, char vector[2000005]) {
    int i, j, nr = 0;

    for (i = 2; i <= n; i++) {

        int value = (int)vector[i];

        if (value != 0) {
            continue;
        }

        nr++;

        for (j = i; j <= n; j += i) {
            vector[j] = '1';
        }
    }

    return nr;
}

int main(int argc, char* argv[]) {
    // Declarare de viariabile
    int n, rc;
    char vector[2000005];

    // Declarare fisiere
    FILE *input, *output;

    // Deschidere fisiere
    input = fopen("ciur.in", "r");
    output = fopen("ciur.out", "w");

    // Verificare fisiere
    if (input == NULL || output == NULL) {
        printf("Error opening files");
        
        return 0;
    } else {
        rc = fscanf(input, "%d", &n);

        if (rc == -1) {
            printf("Error on reading\n");
        }

        fprintf(output, "%d\n", solve(n, vector));
    }

    return 0;
}