Cod sursa(job #2302827)
| Utilizator | Data | 15 decembrie 2018 10:40:21 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 100 |
| Compilator | c-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.37 kb |
#include<stdio.h>
int n,i,j,k,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)))==0)
k++;
printf("%d",k+1);
}
