Cod sursa(job #629292)

Utilizator the_snyper06FMI - ALexandru Mihai the_snyper06 Data 3 noiembrie 2011 04:26:01
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.41 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 = 2; i <= n; i++) {
		v[i] = 0;
		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;
}