Cod sursa(job #1069026)

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

int main() {
    int n, notprime=0, a[2000005];

    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;
}