Cod sursa(job #1997629)

Utilizator savigunFeleaga Dragos-George savigun Data 4 iulie 2017 22:58:18
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <iostream>
#include <fstream>
#include <bitset>
using namespace std;

ifstream in("ciur.in");
ofstream out("ciur.out");

bitset<2000005> prime;

void ciur(int n) {
    prime.set();
    prime.reset(1);

    for (int i = 2; i <= n / 2; ++i) {
        if (!prime[i]) continue;
        for (int j = i + i; j <= n; j += i) {
            prime.reset(j);
        }
    }
}

int main()
{
    int n;
    in >> n;
    ciur(n);

    int sol = 0;
    for (int i = 1; i <= n; ++i) {
        if (prime[i]) sol++;
    }

    out << sol;

    return 0;
}