Cod sursa(job #1653795)

Utilizator llalexandruLungu Alexandru Ioan llalexandru Data 16 martie 2016 16:23:56
Problema Ciurul lui Eratosthenes Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <fstream>

using namespace std;

ifstream fin("ciur.in");
ofstream fout("ciur.out");

int n, nr;
bool Valid[2000000];

bool Prim(int x)
{
    int i;
    for (i=3; i*i<=x; i+=2)
    {
        if (x%i==0)
            return 0;
    }
    return 1;
}

int main()
{
    int i, j;
    fin>>n;
    nr=1;
    for (i=3; i<=n; i+=2)
    {
        if (Valid[i]!=1)
            if (Prim(i))
            {
                nr++;
                for (j=i; j<=n; j+=2*i)
                    Valid[j]=1;
            }
    }
    fout<<nr;
    return 0;
}