Cod sursa(job #2322708)

Utilizator mara2901mara oprea mara2901 Data 18 ianuarie 2019 10:53:26
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <cmath>
#include <iostream>
#include <fstream>
#define NMAX 2000001

using namespace std;

int n, sol;

void Citire()
{
    ifstream fin("ciur.in");
    fin>>n;
    fin.close();
}

void Solutie()
{
    int i,j,p=0;
    bool v[NMAX];
    for (i=1;i<=n;i++)
        v[i]=1;
    v[1]=0;
    for (i=2;i<=sqrt(n);i++)
        if (v[i]==true)
        {
            //cout<<i<<"\n";
            for (j=i;j*i<=n;j++)
            {
                //cout<<"\t"<<i*j<<"   "<<v[i*j]<<"\n";
                v[i*j]=0;

            }
        }


    /**
        p+=x e acelasi lucru cu p=p+x
    */
    for (i=1;i<=n;i++)
        p+=v[i];
    sol=p;
}

void Afisare()
{
    ofstream fout("ciur.out");
    fout<<sol<<"\n";
    fout.close();


}

int main()
{
    Citire();
    Solutie();
    Afisare();
    return 0;
}