Cod sursa(job #2616599)

Utilizator Nicklas32Nicu Gurmuzachi Nicklas32 Data 19 mai 2020 00:45:41
Problema Ciurul lui Eratosthenes Scor 30
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.09 kb

#include <bits/stdc++.h>
using namespace std;
#define forn(i,a,b) for (int i = a; i <= b; i++)
#define ll long long
#define sz(x) (int)((x).size())
#define all(x) (x).begin(), (x).end()
#define x first
#define y second
#define eb emplace_back
#define mp make_pair
#define pi pair <int, int>
#define MAXVAL 1000001

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

void solve(vector<int> &primes){

        bool isPrime[MAXVAL];
        memset(isPrime, true, sizeof(isPrime));

        for(int p=2; p*p<MAXVAL; p++)
                if(isPrime[p] == true) {
                        for(int i=p*p; i<MAXVAL; i+=p)
                                isPrime[i] = false;
        }
        for(int i=2; i<MAXVAL; i++)
                if(isPrime[i]) primes.push_back(i);

}

int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);

        vector<int> primeNums;
        ll n,nr=0;
        fin >> n;

        solve(primeNums);

        int i=0;
        while(primeNums[i] <= n ){
                nr++;
                i++;
        }
        fout << nr;



return 0;
}