Cod sursa(job #904039)

Utilizator bDannYdBurileanu Daniel bDannYd Data 3 martie 2013 16:55:46
Problema Ciurul lui Eratosthenes Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.58 kb
//Ciurul lui Eratosthenes

#include<stdio.h>
#include<math.h>

#define N 2000000

char prim[N];
int i;

void ciur() {
	int j, k;

	for(j = 2; j <= sqrt(N); j++)
		for(k = j * j; k <= N; k += j)
			prim[k] = 1;
	prim[1] = 1;
}

int count(int x) {
	int c = 0;

	for(i = 2; i < N; i++)
		if(prim[i] == 0)
			c++;

	return c;
}

int main() {
	int n;
	FILE *fin, *fout;

	fin = fopen("ciur.in","r");
	fscanf(fin, "%d", &n);
	fclose(fin);
	
	ciur();

	fout = fopen("ciur.out","w");
	printf("%d",count(n));
	fclose(fout);

	system("pause");
	return 0;
}