Pagini recente » Cod sursa (job #305427) | Cod sursa (job #2920258)
#include<fstream>
#include<bitset>
using namespace std;
ifstream cin("ciur.in");
ofstream cout("ciur.out");
const int TRUEPRIME = 2e6 + 2;
const int MAXPRIME = (TRUEPRIME >> 1);
bitset<MAXPRIME> eratostene;
void preprocesare()
{
for(int i = 1; i * i < MAXPRIME ; i++)
{
if(eratostene[i])
continue;
for(int j = ((i << 1) + 1); j * ((i << 1) + 1) < TRUEPRIME ; j += 2)
{
int marked = ((j * ((i << 1) + 1) - 1) >> 1);;
eratostene[marked] = 1;
}
}
}
int main()
{
preprocesare();
int n,nr,cnt = 1;
cin >> n;
for(int i = 1 ; (i << 1) + 1 <= n ; i++)
{
if(!eratostene[i])
cnt++';
}
cout << cnt << endl;
cin.close();
cout.close();
return 0; // superpeace
}