Cod sursa(job #1301627)

Utilizator alex_gabAlex Dragoi alex_gab Data 26 decembrie 2014 11:29:15
Problema Ciurul lui Eratosthenes Scor 30
Compilator c Status done
Runda Arhiva educationala Marime 0.9 kb
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>

static const int TRUE = 1;
static const int FALSE = 0;
const char *IN_FILE_NAME = "ciur.in";
const char *OUT_FILE_NAME = "ciur.out";

FILE *inputFile, *outputFile;

int main(int argc, char *argv[]) {
    inputFile = fopen(IN_FILE_NAME, "r");

    int size;
    fscanf(inputFile, "%d", &size);

    int bitSet[size + 1];
    int i;
    for (i = 0; i <= size; ++i) {
        bitSet[i] = TRUE;
    }

    int numberOfPrimes = 0;
    int k, j;
    for (k = 2; k <= size; k++) {
        if (bitSet[k]) {
            numberOfPrimes++;
            for (j = 1; j <= size / k; j += 1) {
                bitSet[k * j] = FALSE;
            }
        }
    }

    outputFile = fopen(OUT_FILE_NAME, "w");
    fprintf(outputFile, "%d", numberOfPrimes);

    fclose(inputFile);
    fclose(outputFile);
    return 0;
}