Cod sursa(job #1951576)
| Utilizator | 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;
}
