Pagini recente » Cod sursa (job #2093944) | Cod sursa (job #2074977) | Cod sursa (job #829714) | Cod sursa (job #301974) | Cod sursa (job #1384480)
#include <fstream>
using namespace std;
ifstream is("ciur.in");
ofstream os("ciur.out");
const int Maxn = 2000001 / 2 / 8 + 1;
char p[Maxn];
int n;
int Prime(int x);
int main()
{
is >> n;
os << Prime(n);
is.close();
os.close();
return 0;
}
int Prime(int x)
{
int nr = 1;
for ( int i = 1; ((i * i) << 1) + (i << 1) <= n; ++i )
if ( (p[i >> 3] & (1 << (i & 7))) == 0 )
{
for ( int j = ((i * i) << 1) + (i << 1); (j << 1) + 1 <= n; j += (i << 1) + 1 )
p[j >> 3] |= (1 << (j & 7));
}
for ( int i = 1; (i << 1) + 1 <= n; ++i )
if ( (p[i >> 3] & (1 << (i & 7))) == 0 )
++nr;
return nr;
}