Cod sursa(job #2451956)

Utilizator george.andronacheAndronache George-Codrin george.andronache Data 28 august 2019 23:45:15
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.38 kb
// CIURUL LUI ERATHOSTENE!!

// 10 - 2 3 5 7 == 4
/*
#include <fstream>
using namespace std;
ifstream fin("ciur.in");
ofstream fout("ciur.out");
const int Nmax=2000005;
int n,nr=1;
bool frecv[Nmax];
int main()
{
    fin>>n; // 10;
    for(int i=3;i<=n;i+=2)
    {
        if(!frecv[i])
        {
            nr++;
            for(int j=i;j<=n;j+=2*i)
            {
                frecv[j]=1;
            }
        }
    }
    fout<<nr;
    fin.close();
    fout.close();
    return 0;
}
*/
#include <fstream>
using namespace std;
ifstream fin("ciur.in");
ofstream fout("ciur.out");
int k, nr;
const int Nmax=2000005; // al 100000-lea numar prim
bool frecv[Nmax+5];
int main()
{
    fin>>k;
    /* CIUR VECHI
    for(int i=3;i<=Nmax;i+=2)
    {
        if(nr==k)
        {
            sol=i*i;
            fout<<sol;
            break;
        }
        if(!frecv[i])
        {
            ++nr;
            for(int j=i;j<=Nmax;j+=2*i)
            {
                frecv[j]=1;
            }
        }
    }
    */
    for(int i=2;i<=k;i++)
    {
        frecv[i]=1;
    }
    for(int i=2;i<=k;i++)
    {
        if(frecv[i]==1)
        {
            nr++;
            for(int j=i+i;j<=k;j+=i)
            {
                frecv[j]=0;
            }
        }
    }
    fout<<nr;
    fin.close();
    fout.close();
    return 0;
}