Cod sursa(job #1596962)

Utilizator razvandRazvan Dumitru razvand Data 11 februarie 2016 15:45:50
Problema Ciurul lui Eratosthenes Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <iostream>
#include <fstream>
#include <bitset>
#include <stdio.h>
#include <cmath>
#define MAX 2000003
#define MAX2 46340

using namespace std;

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

bitset<MAX> v;

int n,k;

int main() {

    in >> n;
    int sq = sqrt(0xffffffff/2);
    cout << sq;

    for(int i = 2; i <= n; i++) {

        if(v[i] == 0) {

            if(i > MAX2)
                continue;

            k++;
            int mult = i*i;
            //cout << mult << '\n';

            while(mult <= n) {

                v[mult] = 1;
                mult += i;

            }

        }

    }

    out << k;

    return 0;

}