Cod sursa(job #611907)

Utilizator Luncasu_VictorVictor Luncasu Luncasu_Victor Data 4 septembrie 2011 14:37:07
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.41 kb
#include <fstream>
#include <cstdio>
using namespace std;
ifstream f("ciur.in");
ofstream g("ciur.out");
unsigned char p[250001],set=1;

void prime(){
    int i=2,j;
    while(i<=1414){
        while(p[i/8]&set<<(i&7))i++;
        for(j=i*i;j<=2000000;j+=i)p[j/8]|=set<<(j&7); i++;};
}

int main(){
    int n,i,x=0;
    f>>n;
    prime();
    for(i=2;i<=n;i++)if(!(p[i/8]&set<<(i&7)))x++;
    g<<x;
}