Cod sursa(job #2302831)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 15 decembrie 2018 10:43:20
Problema Ciurul lui Eratosthenes Scor 10
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.37 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);
}