Cod sursa(job #2834226)

Utilizator MariusDinsorea32DinsoreanMarius MariusDinsorea32 Data 16 ianuarie 2022 17:45:31
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.61 kb
#include <iostream>
#include <fstream>
#include <bitset>
using namespace std;

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

const int N = 2e6 + 3;
int n, i, j, rez;
bitset <N> prime;

void ciur()
{
    prime[0] = prime[1] = 1;
    for(i = 4; i <= N; i += 2) prime[i] = 1;
    for(i = 3; i <= N; i += 2){
        if(prime[i] == 0){
            for(j = 2; j * i <= N; j++)
                prime[i * j] = 1;
        }
    }
}

int main()
{
    ciur();
    fin >> n;
    rez = 1;
    for(i = 3; i <= n; i += 2)
        if(prime[i] == 0) rez++;
    fout << rez << "\n";
    return 0;
}