Cod sursa(job #1700550)

Utilizator Tiberiu02Tiberiu Musat Tiberiu02 Data 10 mai 2016 19:35:13
Problema Ciurul lui Eratosthenes Scor 30
Compilator c Status done
Runda Arhiva educationala Marime 0.59 kb
# include <stdio.h>
# include <stdlib.h>

# define MAX_N 2000001
# define MAX_PRIMES 100000

char Ciur[MAX_N];

void ciur( int n ) {
    unsigned int i, j;
    for ( i = 2; i <= n; i ++ )
        if ( !Ciur[i] )
            for ( j = i * i; j <= n; j += i )
                Ciur[j] = 1;
}

int main() {
    FILE *fin = fopen( "ciur.in", "r" ), *fout = fopen( "ciur.out", "w" );

    unsigned n, i, S;

    fscanf( fin, "%u", &n );

    ciur( n );

    S = 0;
    for ( i = 2; i <= n; i ++ )
        S += ( !Ciur[i] );

    fprintf( fout, "%u", S );

    fclose( fin );
    fclose( fout );

    return 0;
}