Pagini recente » Cod sursa (job #1997924) | Cod sursa (job #1699054) | Cod sursa (job #317856) | Cod sursa (job #200659) | Cod sursa (job #1301581)
#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");
if (inputFile == NULL) {
printf("Could not open file for read: %s", strerror(errno));
return 1;
}
int size;
fscanf(inputFile, "%d", &size);
int bitSet[size + 1];
int i;
for (i = 0; i <= size; ++i) {
bitSet[i] = TRUE;
}
bitSet[0] = FALSE;
bitSet[1] = FALSE;
int k, j;
for (k = 2; k * k <= size; k++) {
if (bitSet[k]) {
for (j = k * k; j <= size; j += k) {
bitSet[j] = FALSE;
}
}
}
outputFile = fopen(OUT_FILE_NAME, "w");
if (outputFile == NULL) {
printf("Could not open file for write: %s", strerror(errno));
return 1;
}
int numberOfPrimes = 0;
int l;
for (l = 0; l <= size; l++) {
if (bitSet[l]) {
numberOfPrimes++;
}
}
fprintf(outputFile, "%d", numberOfPrimes);
fclose(inputFile);
fclose(outputFile);
return 0;
}