Cod sursa(job #1556326)

Utilizator howsiweiHow Si Wei howsiwei Data 24 decembrie 2015 16:37:05
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.51 kb
#include <iostream>
#include <cstdio>
#include <vector>
#include <algorithm>
#include <cmath>
using namespace std;
 
int main()
{
    freopen("ciur.in", "r", stdin);
    freopen("ciur.out", "w", stdout);
    int n;
    cin >> n;
    vector<bool> sieve(n+1, true);
	sieve[0] = false;
	sieve[1] = false;
    for (int i = 2; i <= sqrt(n); i++) {
        if (!sieve[i]) continue;
        for (int j = i*i; j <= n; j += i) {
			sieve[j] = false;
        }
    }
    printf("%d\n", count(sieve.begin(), sieve.end(), true));
}