Pagini recente » Cod sursa (job #2059219) | Cod sursa (job #876463) | Cod sursa (job #2499028) | Cod sursa (job #2251129) | Cod sursa (job #2722946)
#include <fstream>
#include <bitset>
using namespace std;
ifstream fin("ciur.in");
ofstream fout("ciur.out");
const int nMax = 2000000 + 10;
int n;
bitset < nMax > prim; /// 0 -> true
/// 1 -> false
void Ciur()
{
prim[1] = prim[0] = 1;
for (int i = 4; i <= n; i += 2)
{
prim[i] = 1;
}
for (int i = 3; i * i <= n; i += 2)
{
if (!prim[i])
{
for (int j = i * i; j <= n; j += 2 * i)
{
prim[j] = 1;
}
}
}
}
int main()
{
fin >> n;
int c = 0;
Ciur();
for (int i = 2; i <= n; i++)
{
c += (!prim[i]);
}
fout << c;
fin.close();
fout.close();
return 0;
}