Cod sursa(job #1343378)

Utilizator ioan.ungurasuIoan Ungurasu ioan.ungurasu Data 15 februarie 2015 13:54:47
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <stdio.h>
#include <vector>
using namespace std;

FILE*in = fopen("ciur.in", "r");
FILE*out = fopen("ciur.out", "w");

bool a[2000001];

int main() {
    int n, contor, i = 2; bool trecut = false;

    fscanf(in, "%d", &n );

    contor = n-1;
    while ( trecut == false ) {
        if ( i*i > n )
            trecut = true;
        else if ( a[i] == true )
            i++;
        else if ( a[i] == false && i*i <= n ){
            for ( int j = i*i; j <= n ; j += i )
                if ( a[j] == false ) {
                    a[j] = true;
                    contor--;
                }
            i++;
        }
    }
    fprintf(out, "%d", contor);

    return 0;
}