Cod sursa(job #1698670)
| Utilizator | Data | 4 mai 2016 23:49:15 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.52 kb |
#include <fstream>
#include <iostream>
#include <cstring>
std::ifstream f("ciur.in");
std::ofstream g("ciur.out");
int N;
bool array[2000001];
int main(){
int N;
f >> N;
int pos;
std::memset(array,true,sizeof(bool) * (N + 1));
int prime = 0;
for(int i = 2 ; i <= N ; ++i){
if(array[i]){
++prime;
pos = 2*i;
while(pos <= N){
array[pos] = false;
pos += i;
}
}
}
g << prime;
return 0;
}