Cod sursa(job #2890175)

Utilizator robert_dumitruDumitru Robert Ionut robert_dumitru Data 14 aprilie 2022 19:33:18
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.59 kb
#include <iostream>
#include <bitset>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("ciur.in");
ofstream fout("ciur.out");
bitset <2000003> a;
void Ciur()
{
    int i, j;
    a[0] = a[1] = 1;
    for (i = 4; i <= 2000000; i += 2)
        a[i] = 1;

    for (i = 3; i * i <= 2000000; i += 2)
        if (!a[i])
            for (j = i * i; j <= 2000000; j += 2 * i)
                a[j] = 1;
}
int main()
{
    Ciur();
    int i, x, cnt;
    fin >> x;
    cnt = 0;
    for (i = 1; i <= x; i++)
        if (!a[i])cnt++;
    fout << cnt;
    return 0;
}