Cod sursa(job #2302834)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 15 decembrie 2018 10:44:43
Problema Ciurul lui Eratosthenes Scor 100
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.38 kb
#include<stdio.h>
int n,i,j,k;
char p[2000001];
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))))
   			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))))
   			k++;
	printf("%d",k+1);
}