Cod sursa(job #153340)

Utilizator alecmanAchim Ioan Alexandru alecman Data 10 martie 2008 14:14:51
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1 kb
#include<cstdio>
#include<cstring>
#include<vector>
#include<algorithm>

using namespace std;

#define INPUT "ciur.in"
#define OUTPUT "ciur.out"

FILE *fin=fopen(INPUT, "r"),*fout=fopen(OUTPUT, "w");

vector<char> ciur(2000001);
vector<int> solutie;

long n;

inline void readValues(){fscanf(fin, "%ld", &n);}

void solveFunction();

void printSolution();

int main(){
  readValues();
  solveFunction();
  fclose(fin);
  fclose(fout);
  return 0;
}

void solveFunction(){
  int lastPoz;
  long nrTotal;
  lastPoz=0;
  nrTotal=0;
  for(long i=2;i<=n;++i)
    if(!ciur[i]){
      ++nrTotal;
      for(long j=i+i;j<=n;j+=i)
        ciur[j]=1;
    }
  fprintf(fout, "%ld\n", nrTotal);
/*  nrTotal=0;
  for(long i=n;i>1;--i){
    if(!ciur[i]){
      solutie.push_back(i);
      ++nrTotal;
      if(nrTotal==1000)
	      break;
    }
  }
  reverse(solutie.begin(), solutie.end());
  for(int i=0;i<nrTotal;++i)
    fprintf(fout, "%d ", solutie[i]);
  fprintf(fout, "\n");*/
}