Pagini recente » Monitorul de evaluare | Cod sursa (job #1154744) | Cod sursa (job #825934) | Cod sursa (job #937698) | Cod sursa (job #1413360)
#include <fstream>
#define NMax 2000000/16+1
using namespace std;
ifstream f("ciur.in");
ofstream g("ciur.out");
char p[NMax];
int n;
int ciur(int n)
{
int i, j, nr=1;
for(i=1;2*i*i+2*i<=n;i++)
if(!((p[i/8])&(1<<(i%8))))
for(j=2*i*i+2*i;2*j+1<=n;j+=2*i+1)
p[j/8]=p[j/8]|(1<<(j%8));
for(i=1;2*i+1<=n;i++)
if(!(p[i/8]&(1<<(i%8))))
nr++;
return nr;
}
int main()
{
f>>n;
g<<ciur(n);
return 0;
}