Cod sursa(job #1830197)
| Utilizator | Data | 16 decembrie 2016 13:17:10 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.6 kb |
#include <fstream>
#include <cstring>
int main()
{
int n;
std::ifstream in("ciur.in");
in>>n;
in.close();
bool *ciur=new bool[n+1];
/*
for(int i=0;i<=n;i++)
ciur[i]=true;
*/
memset(ciur,true,sizeof(ciur));
ciur[0]=ciur[1]=false;
int sol=0;
for(int i=2;i<=n;i++)
if(ciur[i]==true)// daca i este prim
{
sol++;
for(int j=2;j*i<=n;j++)//parcurgi toti multiplii lui i
ciur[j*i]=false;//si ii marchezi ca nefiind primi
}
std::ofstream out("ciur.out");
out<<sol<<'\n';
out.close();
delete ciur;
return 0;
}
