Cod sursa(job #1950274)

Utilizator antanaAntonia Boca antana Data 2 aprilie 2017 20:59:23
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <bits/stdc++.h>

#define MAXN 2000001

using namespace std;

bool sieve[MAXN];

int main()
{
    freopen("ciur.in", "r", stdin);
    freopen("ciur.out", "w", stdout);

    int n, i, prime;

    scanf("%d", &n);
    prime = 2;
    while(prime * prime <= n) {
        for(i=prime; i*prime <= n; i++)
            sieve[i*prime] = 1;
        prime++;
        while(sieve[prime])
            prime++;
    }

    int answer = 0;
    for(i=2; i<=n; ++i)
        answer += sieve[i]^1;

    printf("%d", answer);

    return 0;
}