Pagini recente » Cod sursa (job #2622802) | Cod sursa (job #422801) | Cod sursa (job #824041) | Cod sursa (job #2853697) | Cod sursa (job #2509391)
#include <fstream>
using namespace std;
ifstream cin ("ciur.in");
ofstream cout ("ciur.out");
unsigned char c[250000];
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;
ciur(n);
for(i=1;i<=n;i++)
{
if(!getbit(i))
cnt++;
}
cout<<cnt;
return 0;
}