Cod sursa(job #1232759)
| Utilizator | Data | 23 septembrie 2014 20:57:04 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 30 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.38 kb |
#include<fstream>
#include<vector>
#define N 2000100
using namespace std;
ifstream f("ciur.in");
ofstream g("ciur.out");
vector<int> pr;
int lp[N],n;
int main ()
{
f>>n;
for(int i=2;i<=n;++i)
{
if(lp[i]==0)
{
lp[i]=i;
pr.push_back(i);
}
for(int j=0;j<(int)pr.size()&&pr[j]<=lp[i]&&i*pr[j]<=n;++j)
lp[i*pr[j]]=pr[j];
}
g<<pr.size();
return 0;
}