Cod sursa(job #2128930)
| Utilizator | Data | 12 februarie 2018 11:59:14 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.7 kb |
#include <iostream>
#include <cmath>
#include <fstream>
using namespace std;
#define dmax 2000005
bool C[dmax];
/*
C[i] == 1 => i nu e nr prim
C[i] == 0 => i e nr prim
*/
void ciur()
{
int i, j;
C[0] = C[1] = 1;
for (i = 2; i <= sqrt(dmax); i++)
{
if (C[i] == 0)
{
for (j = i*i; j <= dmax; j=j+i)
C[j] = 1;
}
}
}
int main()
{
ifstream in ("ciur.in");
ofstream out ("ciur.out");
ciur();
int n, nr = 0, i;
in >> n;
for (i = 1; i <= n; i++)
{
if (C[i] == 0)
{
nr++;
}
}
out << nr;
return 0;
}
