Cod sursa(job #520068)
| Utilizator | Data | 7 ianuarie 2011 13:05:59 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 30 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.44 kb |
#include <fstream>
#include <iostream>
using namespace std;
const int MAX = 2*1000*1000;
int n,c;
bool p[MAX];
int main() {
ifstream in("ciur.in");
ofstream out("ciur.out");
in >> n;
p[0]=false; p[1]=false; p[2]=true;
n<2?c=0:c=1;
for(int i=3;i<=n;i+=2){
p[i]=true;
for(int j=3;p[i]&&j<i/2;j+=2){
if(i%j==0) p[i]=false;
}
if(p[i]) ++c;
}
out << c << "\n";
in.close();
out.close();
return 0;
}
