Cod sursa(job #1989674)

Utilizator b10nd3Oana Mancu b10nd3 Data 8 iunie 2017 15:24:24
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include<iostream>
#include<fstream>

using namespace std;

#define MAX 2000002

bool isPrime[MAX];

int main(){
ifstream in; ofstream out;
in.open("ciur.in"); out.open("ciur.out");
out.clear();

int n,i,j,limit=2000,no=0;

in>>n;

if(n<2000) limit=n;

for(i=2;i<=limit;i++){
  if(isPrime[i]==0){
     no++;
     if(i*i<=n)
       for(j=i*i;j<=n;j=j+i) { isPrime[j]=true;} 
  }
}

if(n>=2000)
  for(i=2000;i<=n;i++) if(isPrime[i]==false) no++;  


out<<no;
in.close(); out.close();
return 0;
}