Cod sursa(job #809655)
Utilizator | Data | 8 noiembrie 2012 19:39:25 | |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.37 kb |
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
int main(){
ifstream ifs("ciur.in");
ofstream ofs("ciur.out");
int N;
long long int nr=0;
ifs>>N;
vector<bool> v(N/2+1,0);
for(int i=3;i<=N;i+=2){
if(v[i]==false){
nr++;
for(int j=i+i+i;j<=N;j+=2*i){
v[(j+1)/2]=true;
}
}
}
ofs<<nr;
return 0;
}