Pagini recente » Cod sursa (job #1056684) | Cod sursa (job #2814822) | Cod sursa (job #296593) | Cod sursa (job #982620) | Cod sursa (job #482131)
Cod sursa(job #482131)
#include<fstream>
#include<iostream>
#include<vector>
#include<bitset>
using namespace std;
int main()
{
long long n,num=1;
fstream fin("ciur.in", fstream::in);
fstream fout("ciur.out", fstream::out);
fin>>n;
bitset<2000002> bits;
for(int i=1; (i<<1)+1<n; ++i)
{
if( ((i<<1)+1)*((i<<1)+1)>n)
break;
if(!bits[i])
{
for(long long j=i; ((i<<1)+1)*((j<<1)+1)<n; ++j)
{
const long long index=((i<<1)+1)*((j<<1)+1);
//cout<<"("<<((i<<1)+1)*((j<<1)+1)<<" "<<(i+j)+1<<")"<<" ";
bits[index>>1]=1;
}
}
}
for(int i=1; (i<<1)+1<n; ++i)
{
if(!bits[i])
{
num++;
//cout<<(i<<1)+1<<" ";
}
}
fout<<num<<endl;
//cout<<endl<<num<<endl;
fin.close();
fout.close();
return 0;
}