Cod sursa(job #1989674)
| Utilizator | 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;
}
