Cod sursa(job #2763122)

Utilizator tigaieNedelcu Ioan-Andrei tigaie Data 11 iulie 2021 17:49:16
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.02 kb
#include <bits/stdc++.h>
#include <list>
#include <ext/pb_ds/assoc_container.hpp>
#define FOR(i , n) for(int i = 0 ; i < (n) ; i++)
#define N 201
#define apare printf("apare");
#define endl "\n"
using namespace __gnu_pbds;
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int , int> pii;
const int inf = 1e6;
const int nax = 50001;

int ciur( int n ){
    vector<bool> sieve(n+1 , false);
    vector<int> pp;
    int rootn = sqrt(n);
    for(int i = 2 ; i < n ; i++){
        if(!sieve[i]){
            if(i <= rootn){
                for(int j = i*i ; j < n ; j += i)
                    sieve[j] = true;
            }
            pp.push_back(i);
        }
    }
//    for(auto it : pp)
//        cout << it << " ";
//    cout << endl;
    return pp.size();
}

signed main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
    freopen("ciur.in" , "r" , stdin);
    freopen("ciur.out" , "w" , stdout);
    int n;
    cin >> n;
    cout << ciur(n);
    return 0;
}