Cod sursa(job #1144956)

Utilizator radarobertRada Robert Gabriel radarobert Data 17 martie 2014 19:24:41
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <fstream>
#include <cmath>

using namespace std;

bool c[2000000];

int main()
{int i, x, j, nr = 0, m; double n;
    ifstream in("ciur.in");
    ofstream out("ciur.out");
    in >> x;
    if (x > 1)
        ++nr;
    n = sqrt(x);
    m = (int)n;
    for (i = 3; i <= m; i += 2)
    {
        if (!c[i])
            ++nr;
        for (j = i; j <= x/i; ++j)
            c[i*j] = 1;
    }
    for (i = n+1; i <= x; ++i)
        if (!c[i] && i % 2 != 0)
            ++nr;
    out << nr << '\n';

    return 0;
}