Cod sursa(job #2796053)

Utilizator vmnechitaNechita Vlad-Mihai vmnechita Data 7 noiembrie 2021 14:46:15
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.7 kb
#include <bits/stdc++.h>
#define ll long long
#define pb push_back
#define pf push_front
#define MOD 1000000007
#define MAX 2000005

using namespace std;

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

bitset < MAX > nonprim;

void ciur()
{
    int i, j;

    nonprim[0] = nonprim[1] = 1;
    for(i = 4; i <= MAX; i += 2 ) nonprim[i] = 1;
    for(i = 3; i * i <= MAX; i += 2)
        if(nonprim[i] == 0) for(j = i * i; j <= MAX; j += i) nonprim[j] = 1;
}

int main()
{
    ios_base::sync_with_stdio(false), cin.tie(0),cout.tie(0);
    int n, i, nr = 0;

    fin >> n;

    ciur();
    for(i = 1; i <= n; i++) if(nonprim[i] == 0) nr++;

    fout << nr;

    return 0;
}