Cod sursa(job #680339)

Utilizator tiriplicamihaiTiriplica Mihai Dragos tiriplicamihai Data 15 februarie 2012 14:43:51
Problema Ciurul lui Eratosthenes Scor 30
Compilator c Status done
Runda Arhiva educationala Marime 0.36 kb
#include<stdio.h>

#define MaxN 2000005

int N, i, j, nr;
char v[MaxN/8];

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