Cod sursa(job #2161959)
| Utilizator | Data | 11 martie 2018 22:16:09 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.58 kb |
#include <iostream>
#include <fstream>
using namespace std;
bool a[2000010];
int main()
{
ifstream fin("ciur.in");
ofstream fout("ciur.out");
int n, p=1, q=1, nr=0;
fin >> n;
while (q)
{
q=0;
for (int i=p+1; i<=n; i++)
{
if (!a[i])
{
p=i;
q=1;
break;
}
}
for (int i=2*p; i<=n; i+=p)
a[i]=1;
}
for (int i=2; i<=n; i++)
if (!a[i])
nr++;
fout << nr;
return 0;
}
