Cod sursa(job #1138298)

Utilizator irimiecIrimie Catalin irimiec Data 9 martie 2014 21:06:49
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <fstream>

using namespace std;

ifstream f("ciur.in");
ofstream g("ciur.out");

long n;
bool pr[1000001];

long long ciur()
{
    long i, j;
    long long nr = 1;

    for(i = 1; ((i * i) << 1) + (i << 1) <= n; i += 1)
    {
        if(pr[i] == 0)
        {
            for(j = ((i * i) << 1) + (i << 1); (j << 1) + 1 <= n; j += (i << 1) + 1)
            {
                pr[j]=1;
            }
        }
    }

    for(i = 1; (i << 1) + 1 <= n; ++i)
        if(pr[i] == 0)
            nr++;

    return nr;
}

int main()
{
    f >> n;
    g << ciur();
}