Cod sursa(job #1562041)

Utilizator alittlezzCazaciuc Valentin alittlezz Data 4 ianuarie 2016 19:12:41
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <bits/stdc++.h>

using namespace std;

bitset <2000005> ciur;

int sieve(int n){
    int i,j;
    int sol = 1;
    for(i = 4;i <= n;i += 2){
        ciur[i] = 1;
    }
    for(i = 3;i*i <= n;i += 2){
        if(ciur[i] == 0){
            sol++;
            for(j = i*i;j <= n;j += 2*i){
                ciur[j] = 1;
            }
        }
    }
    return sol;
}

int main()
{
    int n;
    freopen("ciur.in", "r", stdin);
    freopen("ciur.out", "w", stdout);
    scanf("%d",&n);
    printf("%d",sieve(n));
    return 0;
}