Cod sursa(job #2662060)

Utilizator andrei1616andrei andrei andrei1616 Data 23 octombrie 2020 13:42:28
Problema Ciurul lui Eratosthenes Scor 20
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.55 kb
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

int
euclid (int **l, int m) {
	int c = 0;
	int i = 2, j, prime;
	for (;i <= m; ++ i) {
		prime = 1;
		j = 2;
		for (;j < i; ++ j) {
			if (l[0][j] && i % j == 0) {
				prime = 0;
				break;
			}
		}
		if (prime) {
			l[0][i] = 1;
			++ c;
		}
	}
	return c;
}

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

	n = euclid(&l, n);

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