Pagini recente » Cod sursa (job #803317) | Cod sursa (job #2186562) | Cod sursa (job #632310) | Cod sursa (job #3168910) | Cod sursa (job #2509433)
#include <fstream>
using namespace std;
ifstream cin("ciur.in");
ofstream cout("ciur.out");
unsigned char c[250001];
inline void setbit(int i)
{
int i1 = i >> 3;
int r1 = i & 7;
c[i1] |= (1 << r1);
}
inline bool getbit(int i)
{
int i1 = i >> 3;
int r1 = i & 7;
return (c[i1] & (1 << r1) != 0);
}
void ciur(int n)
{
int i, j;
setbit(0);
setbit(1);
for (i = 2; i <= n; i++)
{
if (!getbit(i))
{
for (j = i * i; j <= n; j += i)
{
setbit(j);
}
}
}
}
int main()
{
int n, i, cnt = 0;
cin >> n;
ciur(n);
for (i = 1; i <= n; i++)
{
if (!getbit(i))
cnt++;
}
cout << cnt << endl;
return 0;
}