Cod sursa(job #1471179)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 13 august 2015 13:38:06
Problema Ciurul lui Eratosthenes Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.37 kb
#include<stdio.h>
int n,i,j,k=1,p[2000005];
int main() {
	freopen("ciur.in","r",stdin),freopen("ciur.out","w",stdout),scanf("%d",&n);
	for(i=1;((i*i)<<1)+(i<<1)<=n;i++)
	if((p[i>>3]&(1<<(i&7)))==0)
   		for(j=((i*i)<<1)+(i<<1);(j<<1)+1<=n;j+=(i<<1)+1)
        	p[j>>3]|=(1<<(j&7));
	for(i=1;2*i+1<=n;i++)
	if((p[i>>3]&(1<<(i&7)))==0)
   		k++;
	printf("%d",k);
}