Cod sursa(job #645281)

Utilizator tak3rStefan Mirea tak3r Data 8 decembrie 2011 22:42:06
Problema Ciurul lui Eratosthenes Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include<cstdio>
#include<cstring>
#include<vector>

using namespace std;

#define NMAX 2000001

int ciur( int n ){
  
  int j,i;
  char mask[NMAX];
  vector<int> primes;
  
  memset( mask, 0, NMAX / sizeof( char ) );
  
  for( i=2; i<=n; ++i ){
    if( mask[i] == 0 ){
      primes.push_back( i );
      for( j=i+1; j<=n; ++j ){
        if( j % i == 0 ){
          mask[j] = 1;
        }
      }
    }
  }
  
  return (int) primes.size();
}

int main(){
  
  int n;
  
  freopen( "ciur.in", "r", stdin );
  freopen( "ciur.out", "w", stdout );
  
  scanf( "%d", &n );
  
  printf( "%d", ciur( n ) );
  
  return 0;
  
}