Cod sursa(job #1289428)
Utilizator | Marron Marron | Data | 9 decembrie 2014 21:19:20 |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.45 kb |
#include <iostream>
#include <fstream>
#include <bitset>
std::ifstream f("ciur.in");
std::ofstream g("ciur.out");
int n, a[2000005];
std::bitset<2000005> viz;
int ciur()
{
viz[0] = true;
viz[1] = true;
int s = 0;
for (int i = 2; i <= n; i++) {
if (viz[i] == true) continue; s++;
for (int j = i + i; j <= n; j += i) {
viz[j] = true;
}
}
return s;
}
int main()
{
f >> n;
g << ciur() << std::endl;
return 0;
}