Cod sursa(job #763309)

Utilizator cristina.cimpuCimpu Cristina cristina.cimpu Data 1 iulie 2012 17:13:39
Problema Ciurul lui Eratosthenes Scor 30
Compilator c Status done
Runda Arhiva educationala Marime 0.52 kb
#include <stdio.h>
#include <stdlib.h>

int main() {

	FILE *f, *g;
	int N, i, j, nr;
	char *prim;
	f = fopen("ciur.in", "r");
	g = fopen("ciur.out", "w");
	fscanf(f, "%d", &N);
	prim = (char *) malloc ((N+1) * sizeof(char));
	if (prim == NULL) {
		perror("a.out");
		return 1;
	}
	
	for (i = 2; i <= N; i++) {
		prim[i] = 1;
	}
	nr = 0;
	for (i = 2; i <= N; i++) {
		if (prim[i] == 1) {
			nr++;
			for (j = i * i; j <= N; j = j + i) {
				prim[j] = 0;
			}
		}
		
	}
	fprintf(g, "%d", nr);
	
	fclose(f);
	fclose(g);
	return 0;
}