Pagini recente » Cod sursa (job #2607747) | Cod sursa (job #1463981) | Cod sursa (job #1399935) | Cod sursa (job #3266111) | Cod sursa (job #1809674)
#include <fstream>
#include <vector>
using namespace std;
int main ()
{
ifstream fi ("ciur.in");
ofstream fo ("ciur.out");
int n;
fi >> n;
vector<bool> pr(n / 2 + 1);
int count = 1;
for (int i = 1; 2*(i*i + i) <= n; ++i)
{
if (pr[i] == 0) // 2i+1 is definitely prime
{
// eliminate 2i+1's multiples
for (int j = 2*(i*i + i); 2*j + 1 <= n; j += 2*i + 1)
{
pr[j] = 1;
}
}
}
for (int i = 1; 2*i + 1 <= n; ++i)
if (pr[i] == 0)
count += 1;
fo << count;
return 0;
}