Cod sursa(job #1792203)
Utilizator | MateiStefan MateiAruxandei | Data | 30 octombrie 2016 10:50:07 |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.51 kb |
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("ciur.in");
ofstream fout("ciur.out");
bool ciur[2000005];
int main()
{
int n;
fin >> n;
for(int i = 2; i <= n; ++i)
ciur[i] = 1;
int r = sqrt(n);
int nr = 0;
for(int i = 2; i <= n; ++i)
if(ciur[i])
{
++nr;
if(i <= r)
for(int j = i * i; j <= n; j += i)
ciur[j] = 0;
}
fout << nr << '\n';
return 0;
}