Cod sursa(job #561222)

Utilizator sebii_cSebastian Claici sebii_c Data 19 martie 2011 07:50:34
Problema Ciurul lui Eratosthenes Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.51 kb
#include <stdio.h>
#include <stdlib.h>

int N;

void ciur(int N)
{
	char *sieve;
	sieve = (char *) calloc(N+1, sizeof(char));
	int i, j, count = 0;
	for (i=0; i<=N; ++i)
		sieve[i] = 0;
	sieve[0] = sieve[1] = 1;
	for (i=2; i<=N; ++i)
		if (!sieve[i]) {	
			count++;
			for (j=2*i; j<=N; j+=i)
				sieve[j] = 1;
		}
	free(sieve);
	FILE *fout = fopen("ciur.out", "w"); 
	fprintf(fout, "%d\n", count);
	fclose(fout);
}

int main()
{
	FILE *fin = fopen("ciur.in", "r");
	fscanf(fin, "%d", &N);
	fclose(fin);
	ciur(N);
	return 0;
}