Cod sursa(job #1010826)

Utilizator Teodor94Teodor Plop Teodor94 Data 15 octombrie 2013 19:25:21
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <cstdio>
#include <cassert>

#define MAX_N 2000001

bool prime[MAX_N];

int main() {
    FILE *fin, *fout;

    fin = fopen( "ciur.in", "r" );
    int n;
    assert( fscanf( fin, "%d", &n ) == 1 );
    fclose( fin );

    for ( int i = 2; i * i <= n; ++i )
        if ( !prime[i] )
            for ( int j = i * i; j <= n; j += i )
                prime[j] = true;

    int count = 0;
    for ( int i = 2; i <= n; ++i )
        count += !prime[i] ? 1 : 0;

    fout = fopen( "ciur.out", "w" );
    fprintf( fout, "%d\n", count );
    fclose( fout );
}