Pagini recente » Cod sursa (job #434770) | Cod sursa (job #1432657) | Cod sursa (job #1839469) | Cod sursa (job #794130) | Cod sursa (job #2665437)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("ciur.in");
ofstream fout("ciur.out");
vector<int> v;
bool c[1505];
int n, nr, i;
void ciur()
{
int i, j;
for (i = 3; i * i * i * i <= n; i += 2)
if (!c[i])
for (j = i * i; j * j <= n; j += 2 * i)
c[j] = 1;
}
bool prim(int x)
{
int i;
for (i = 0; i < v.size() && v[i] * v[i] <= x; ++i)
if (!(x % v[i]))
return false;
return true;
}
int main()
{
fin >> n;
ciur();
v.push_back(2);
for (i = 3; i * i <= n; i += 2)
if (!c[i])
v.push_back(i);
for (i = (v.back() == 2 ? 3 : v.back() + 2); i <= n; ++i)
if (prim(i))
++nr;
fout << v.size() + nr;
fin.close();
fout.close();
return 0;
}