Cod sursa(job #2244176)

Utilizator cosmin.pascaruPascaru Cosmin cosmin.pascaru Data 22 septembrie 2018 13:01:35
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.97 kb
#include <stdio.h>
#include <iostream>
#include <fstream>
#include <vector>
#include <array>
#include <algorithm>
#include <vector>
#include <stack>
#include <set>
#include <assert.h>
#include <queue>


using LL = long long;
using ULL = int long long;

const std::string _problemName = "ciur";

namespace std {
std::ifstream fin(_problemName + ".in");
std::ofstream fout(_problemName + ".out");
}

#define USE_FILES

#ifdef USE_FILES
#define cin fin
#define cout fout
#endif

int main() {

    int n;
    std::cin >> n;

    int primesCount = 1;
    std::vector<bool> sleve(n + 1);

    for (int multiple = 2; multiple <= n; multiple += 2) {
        sleve[multiple] = true;
    }

    for (int prime = 3; prime <= n; ++prime) {
        if (sleve[prime]) {
            continue;
        }

        ++primesCount;

        for (int multiple = 2 * prime; multiple <= n; multiple += prime) {
            sleve[multiple] = true;
        }
    }

    std::cout << primesCount << '\n';

    return 0;
}