Cod sursa(job #1599046)
Utilizator | Data | 13 februarie 2016 16:08:50 | |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.61 kb |
#include <fstream>
using namespace std;
int n;
bool viz[2000005];
void citire()
{
ifstream fin ("ciur.in");
fin>>n;
fin.close();
}
void rezolvare()
{
int i,p,nrprime=0;
ofstream fout ("ciur.out");
viz[1]=1;
for (i=4;i<=n;i+=2)
viz[i]=1;
for (i=3;i*i<=n;i=i+2)
if (viz[i]==0)
for (int j = i * i; j <= n; j = j + 2*i)
viz[j] = 1;
nrprime = 1;
for (i=3;i<=n;i+=2)
if (viz[i]==0)
nrprime++;
fout<<nrprime;
fout<<'\n';
fout.close();
}
int main()
{
citire();
rezolvare();
return 0;
}