Cod sursa(job #1231731)

Utilizator thinkphpAdrian Statescu thinkphp Data 21 septembrie 2014 14:02:37
Problema Ciurul lui Eratosthenes Scor 30
Compilator c Status done
Runda Arhiva educationala Marime 0.86 kb
#include <stdio.h>
#define MAXN 2000001
#define FIN "ciur.in"
#define FOUT "ciur.out"
 
int sita[ MAXN ], N, count = 0;

//function prototypes
void eratosthenes();
void read();

int main() {

    read();
    eratosthenes(); 

    return(0);
};

void read() {

     freopen(FIN, "r", stdin);

     scanf("%d", &N);

     fclose( stdin );     
}

void eratosthenes() {

     int i,
         j;

     freopen(FOUT, "w", stdout);

     for(i = 2; i <= N; i++) sita[ i ] = 1; 
 
     for(i = 2; i <= N; i++) {

        if(sita[ i ]) {
 
           j = 2;
              
           while( i * j <= N ) {

               sita[ i * j ] = 0; 

               j++;
           } 
        }
     }
  
     for(i = 2; i <= N; i++) {
 
         if( sita[ i ] ) count++;
     }    

     printf("%d", count);

     fclose( stdout );     
};