Cod sursa(job #2302207)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 13 decembrie 2018 22:25:08
Problema Ciurul lui Eratosthenes Scor 100
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.39 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);
}