Cod sursa(job #2302831)
Utilizator | 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);
}