Cod sursa(job #2920258)

Utilizator PHOSSESSEDProsie Radu-Teodor PHOSSESSED Data 23 august 2022 12:10:55
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include<fstream>
#include<bitset>
using namespace std;

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


const int TRUEPRIME = 2e6 + 2;
const int MAXPRIME = (TRUEPRIME >> 1);


bitset<MAXPRIME> eratostene;



void preprocesare()
{
    for(int i = 1; i * i < MAXPRIME ; i++)
    {
        if(eratostene[i])
            continue;

        for(int j = ((i << 1) + 1); j * ((i << 1) + 1) < TRUEPRIME ; j += 2)
        {
           int marked = ((j * ((i << 1) + 1) - 1) >> 1);;
           eratostene[marked] = 1;
        }
    }
}

int main()
{
    preprocesare();

    int n,nr,cnt = 1;
    cin >> n;

    for(int i = 1 ; (i << 1) + 1 <= n ; i++)
        {
            if(!eratostene[i])
                cnt++';
        }

    cout << cnt << endl;

    cin.close();
    cout.close();
    return 0; // superpeace
}