Cod sursa(job #1069033)

Utilizator dotixRadu-Bogdan Croitoru dotix Data 29 decembrie 2013 12:24:30
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <cstdio>
#include <math.h>

bool a[2000005];

int main() {
    int n, notprime=0;

    freopen("ciur.in", "r", stdin);
#ifdef INFOARENA
    freopen("ciur.out", "w", stdout);
#endif

    scanf("%d", &n);

    for (int i = 2; i <= n; i++) {
        a[i] = true; 
    }

    for(int i = 2; i <= sqrt(n); i++) {
        if (a[i] == true) {
            for (int j = i * i; j <= n; j += i) {
                if (a[j]) notprime++;
                a[j] = false;
            }
        }
    }

    printf("%d\n", n - notprime - 1);
    return 0;
}