Cod sursa(job #1490869)

Utilizator mariakKapros Maria mariak Data 24 septembrie 2015 12:15:47
Problema Ciurul lui Eratosthenes Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include <cstdio>
#include <algorithm>
#include <bitset>
#define Nmax 2000002

using namespace std;
int N;
bitset <Nmax> b;
void read()
{
    freopen("ciur.in", "r", stdin);
    freopen("ciur.out", "w", stdout);
    scanf("%d", &N);
}
void ciur()
{
    int i, j;
    for(i = 3; i * i <= N; ++ i)
        if(!b[i]) for(j = i * i; j <= N; j += 2 * i)
                    b[j] = 1;

}
void write()
{
    printf("%d\n", (N + 1) / 2 - b.count());
}
int main()
{
    read();
    ciur();
    write();
    return 0;
}