Cod sursa(job #629293)

Utilizator the_snyper06FMI - ALexandru Mihai the_snyper06 Data 3 noiembrie 2011 04:27:01
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.44 kb
#include<cstdio>

unsigned int n;

int main()
{
	unsigned int i, j, k = 0;
	
	freopen("ciur.in", "r", stdin), freopen("ciur.out", "w", stdout);
	
	scanf("%u", &n);
	unsigned int v[n / 32 + 1];
	
	for(i = 0; i <= n / 32 + 1; i++) v[i] = 0;	
	for(i = 2; i <= n; i++)
		if(!(v[i / 32] & (1<<(i % 32))))
		{
			k++;
			for(j = 2 * i; j <= n; j += i)
				v[j / 32] |= (1<<(j % 32));
		}
	
	printf("%u\n", k);
		
	return 0;
}