Cod sursa(job #3143685)

Utilizator speedy_gonzalesDuca Ovidiu speedy_gonzales Data 1 august 2023 15:15:43
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.9 kb
#include <iostream>
#include <vector>
#include <map>
#include <cstring>
#include <fstream>
#include <sstream>
#include <string>
#include <algorithm>
#include <queue>
#include <cmath>
#include <set>
#include <unordered_map>
#include <stack>
#include <iomanip>
#include <random>
#include <climits>

using namespace std;

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

const int MAX = 2 * 1e6 + 1;

bool isPrime[MAX];

int main() {
    int n;
    fin >> n;

    int ans = 0;

    isPrime[0] = false;
    isPrime[1] = false;

    for (int i = 2; i < MAX; ++i) {
        isPrime[i] = true;
    }

    for (int i = 2; i * i < MAX; ++i) {
        if (isPrime[i]) {
            for (int long j = i * i; j < MAX; j += i) {
                isPrime[j] = false;
            }
        }
    }

    for (int i = 0; i <= n; ++i) {
        if (isPrime[i]) {
            ++ans;
        }
    }

    fout << ans;

    return 0;
}