Cod sursa(job #2662068)

Utilizator andrei1616andrei andrei andrei1616 Data 23 octombrie 2020 14:14:33
Problema Ciurul lui Eratosthenes Scor 90
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.52 kb
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

int
euclid (char **l, int n) {
	int i = 2, nrp = 0, j;
	for (;i < n; ++ i) {
		if ((*l)[i] == 0) {
			++ nrp;
			if (i * i < n) {
				for (j = i + i; j < n; j += i) {
					(*l)[j] = 1;
				}
			}
		}
	}
	return nrp;
}

void
main (void) {
	FILE *f = fopen("ciur.in", "r");
	int n;
	fscanf(f, "%d", &n);
	char *l = malloc(n * sizeof(char));
	memset(l, 0, n);

	n = euclid(&l, n);

	FILE *f1 = fopen("ciur.out", "w");
	fprintf(f1, "%d", n);
	fclose(f);
	fclose(f1);
	free(l);
}