Cod sursa(job #494359)

Utilizator sunt_emoSunt emo sunt_emo Data 21 octombrie 2010 13:34:35
Problema Ciurul lui Eratosthenes Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.41 kb
#include <stdio.h>
#include <math.h>

FILE *in; FILE *out;
long i,j,k=2,N,np=0; bool a[2000010];

int main () {
	in=fopen ("ciur.in","r"); out=fopen ("ciur.out","w");
	fscanf (in,"%ld",&N);
	for (i=2; i<=N; i++) a[i]=1;
	while (k<=sqrt (N)) {
		while (a[k]==0) k++;
		for (j=2; k*j<=N; j++) a[j*k]=0;
		k++;
	}
	for (i=2; i<=N; i++) if (a[i]) np++;
	fprintf (out,"%ld\n",np);
	fclose (in); fclose (out);
	return 0;
}