Cod sursa(job #1951576)

Utilizator andreigasparoviciAndrei Gasparovici andreigasparovici Data 3 aprilie 2017 18:25:03
Problema Ciurul lui Eratosthenes Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include <iostream>
#include <cstdio>
#include <vector>
using namespace std;

const int NMAX  = 2000005;

int n;
int lp[NMAX];
vector<int> pr;

int main()
{
    freopen("ciur.in","r",stdin);
    freopen("ciur.out","w",stdout);

    scanf("%d",&n);

    for (int i=2; i<n; ++i)
    {
        if (!lp[i])
        {
            lp[i] = i;
            pr.push_back(i);
        }
        for (int j=0; j < pr.size() && pr[j] <= lp[i] && i * pr[j] < n; ++j)
            lp[i * pr[j]] = pr[j];

    }

    printf("%d\n",pr.size());

    return 0;
}