Cod sursa(job #763480)

Utilizator test666013Testez test666013 Data 2 iulie 2012 13:44:35
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define MAX 250001

int n,nr;

void ciur(){
    unsigned char p[MAX]; memset(p,0,sizeof(p));
    int i=2;
    while(i<=1414)
    {
        while(p[i/8]&(1<<(i%8)))i++;
        for(int j=i*i;j<=2000000;j+=i)p[j/8]|=1<<(j%8);
        i++;
    }
    int step = 1;
    for(int i=2;i<=n && step;i++)
    if(!(p[i/8]&(1<<(i%8))))nr++;
    printf("%d\n",nr);
}

int main(){

    freopen("ciur.in","r",stdin);
    freopen("ciur.out","w",stdout);
        scanf("%d",&n);

        ciur();

    return 0;
}