Cod sursa(job #153541)

Utilizator MarquiseMarquise Marquise Data 10 martie 2008 16:40:34
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.48 kb
#include <stdio.h>

#define NMAX 250001

int n, num = 1;
char s[NMAX];


void ciur()
{
	int i, j;
	for ( i = 3; i <= n; i += 2)
		if ( !( s[ i >> 3] & (1 << (i & 7) ) ) )
		{
             num++;
     	     for ( j = 2; j * i <= n; j++)
				s[ ( i * j) >> 3] |= 1 << ( ( i * j) & 7);
         } 

}


int main()
{
	int i;
	freopen("ciur.in", "r", stdin);
	freopen("ciur.out", "w", stdout);
	scanf("%d", &n);
	ciur();

	printf("%d\n", num);
	  
			
	return 0;
}