Cod sursa(job #1013665)

Utilizator mucenic_b101Bogdan Mucenic mucenic_b101 Data 21 octombrie 2013 15:30:11
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include<stdio.h>

#define MAXN 250001

unsigned char ciur[MAXN];

int main () {

    FILE *f,*g;
    f=fopen("ciur.in","r");
    g=fopen("ciur.out","w");

    int n, nr;

    fscanf(f,"%d",&n);


    for( int i = 2; i*i <= n; ++i)
        for( int j= i * i ; j <= n; j += i )
        {
            ciur[j/8] |= (1<<(j%8));
        }
    //ciur[0]=ciur[1]=1;
    nr=0;
    for(i=0; i<=n/8; ++i)
        for( int j = 0; j <= 7; ++j)
            if(!(ciur[i] & (1<<j)))
                nr++;

    fprintf(g,"%d\n",nr);

    fclose(f);
    fclose(g);

    return 0;
}