Cod sursa(job #1567757)

Utilizator TopiAlexTopala Alexandru TopiAlex Data 13 ianuarie 2016 18:31:34
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <stdio.h>
#include <math.h>
#define N_MAX 2000003
using namespace std;

int n;
bool v[N_MAX];

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

    scanf("%d", &n);

    int rad = sqrt(n);
    int i, j;
    int counter;

    for (i = 2; i <= rad; ++i){
        if (!v[i]){
            for (j = i; i * j <= n; ++j){
                v[i*j] = true;
            }
        }
    }

    counter = 0;

    for (i = 2; i <= n; ++i)
        if (!v[i]) counter++;

    printf("%d\n", counter);

    return 0;
}