Cod sursa(job #2376827)

Utilizator radugheoRadu Mihai Gheorghe radugheo Data 8 martie 2019 17:58:17
Problema Ciurul lui Eratosthenes Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.51 kb
#include <fstream>
#include <bitset>

using namespace std;

int n, i, j, sol;

bool f[2000001];

int main () {
    ifstream fin ("ciur.in");
    ofstream fout("ciur.out");
    fin >> n;
    sol = 1;
    for (i=1; ((i*i)<<1)+(i<<1)<=n; i++){
        if (f[i] == 0){
            for (j=((i*i)<<1)+(i<<1); (j>>1)+1<=n; j+=(i<<1)+1){
                f[j] = 1;
            }
        }
    }
    for (i=1; 2*i+1<=n; i++){
        if (f[i] == 0)
            sol++;
    }
    fout << sol;
    return 0;
}