Cod sursa(job #2390500)

Utilizator linerunnerMihai Ion linerunner Data 28 martie 2019 09:52:30
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include<stdio.h>
#include<fstream>
#include<iostream>
#include<vector>
#include<cmath>

using namespace std;

ifstream f("ciur.in");
ofstream g("ciur.out");

long long n;

int main()
{
    f >> n;

    vector<bool> primes(n + 1, true);
    primes[0] = false;
    primes[1] = false;
    
    long long sqrt_n = sqrt(n);
    
    for (long long i = 2; i <= sqrt_n; i++) {
        if (primes[i]) {
            for (long long j = i * i; j <= n; j += i) {
                primes[j] = false;
            }
        }
    }

    long long count = 0;
    for (long long i = 2; i <= n; i++)
        if (primes[i])
            count++;

    g << count;

    f.close();
    g.close();
    return 0;
}