Cod sursa(job #2450457)

Utilizator PatriciaCretoiuCretoiu Patricia PatriciaCretoiu Data 23 august 2019 14:03:22
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.56 kb
#include <bits/stdc++.h>
using namespace std;
ifstream in("ciur.in");
ofstream out("ciur.out");
const int N=2e6+2;
int n,sol,nr;
bitset<N>v;
int main()
{
    in>>n;
    sol=2;
    for(int i=5; i<=n; i+=6)
    {
        if(v[i]==0)
        {
            sol++;
            if(1ll*i*i<=n)
                for(int j=i*i; j<=n; j+=i) v[j]=1;
        }
        if(v[i+2]==0 && i+2<=n)
        {
            sol++;
            nr=i+2;
            if(1ll*nr*nr<=n)
                for(int j=nr*nr; j<=n; j+=nr) v[j]=1;
        }
    }
    out<<sol;
}