Cod sursa(job #2612938)

Utilizator tavi255Varzaru Octavian Stefan tavi255 Data 9 mai 2020 13:52:46
Problema Ciurul lui Eratosthenes Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.64 kb
//#include <iostream>
#include <fstream>
using namespace std;

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

const int Max=2000005;

bool viz[Max]; int n,nr;

bool prim(int x)
{
    if(x==2 || x==3 || x==5 || x==7)
    return 1;
    if(x%2==0 || x%3==0 || x%5==0 || x%7==0)
        return 0;
    return 1;

}

int main()
{
    in>>n;

   for(int i=11;i*i<=n;i+=6)
    if(!viz[i] && prim(i))
    for(int j=3;j*i<=n;j+=2)
   {
       viz[i*j]=1;
       if((i+2)*j<=n)
        viz[(i+2)*j]=1;
   }

    int nr=1;
    for(int i=3;i<=n;i+=2)
        if(!viz[i] && prim(i))
        nr++;
    out<<nr;

    return 0;
}