Cod sursa(job #273294)

Utilizator space.foldingAdrian Soucup space.folding Data 8 martie 2009 13:51:17
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include <stdio.h>

FILE *in, *out;
int sir[1000001];

int main ()
{
	int n, i, j, np=1;
	in=fopen("ciur.in", "r");
	out=fopen("ciur.out", "w");

	fscanf(in, "%d", &n);


	for(j=3; j<=n; j+=2)
		sir[(j-1)/2]=j;


	for(i=3; i<=n; i+=2)
	{
		if(sir[(i-1)/2])
		{
			np++;
			for(j=(i-1)/2+i; j<=n/2 ; j+=i)
				sir[j]=0;
		}
	}

	if(n==2)
		fprintf(out, "%d", 1);

	if(n==3)
		fprintf(out, "%d", 2);

	if(n>3)
		fprintf(out, "%d", np);
	
	fclose(in);
	fclose(out);
	return 0;
}