Cod sursa(job #2541045)

Utilizator bogdan2604Bogdan Dumitrescu bogdan2604 Data 7 februarie 2020 23:58:23
Problema Ciurul lui Eratosthenes Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <bits/stdc++.h>
#define MAXX 1000001

using namespace std;

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

int n,i,j,x,nr_prime;
bitset <MAXX + 1> prim;

void ciur()
{
    prim[0] = prim[1] = 1;
    i = j = 2;
    while(i * j <= MAXX)
    {
        prim[i * j] = 1;
        ++ j;
    }
    for(i = 3; i * i<= MAXX; i += 2)
        if(!prim[i])
        {
            j = 2;
            while(i * j <= MAXX)
            {
                prim[i * j] = 1;
                ++ j;
            }
        }
}
int main()
{
    ciur();
    f >> n;
    for(i = 1; i <= n; ++ i)
        if(!prim[i])
            ++ nr_prime;
    g << nr_prime;
}