Cod sursa(job #160228)

Utilizator marinaMarina Horlescu marina Data 14 martie 2008 21:28:36
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
//Ciurul lui Eratosthenes
#include <stdio.h>
#define INPUT "ciur.in"
#define OUTPUT "ciur.out"
#define MAXN 2000000
#define MAX 1000000

int N;
char prim[MAX];
int nr=1;

void ciur(int n)
{
	long long i, j;
	for(i = 1;(i<<1)+1 <= N; ++i)
		if(!prim[i])
			for(++nr, j = (i*i+i)<<1; (j<<1)+1 <= N; j += (i<<1)+1)
				prim[j] = 1;
}
int main()
{
	freopen(INPUT, "r", stdin);
	freopen(OUTPUT, "w", stdout);
	
	scanf("%d", &N);
	ciur(N);
	printf("%d\n", nr);
	
	return 0;
}