Pagini recente » Cod sursa (job #17418) | Rating Cantea Andrei (andreicantea) | Cod sursa (job #1768625) | Cod sursa (job #157838) | Cod sursa (job #794949)
Cod sursa(job #794949)
#include<cstdio>
#include<bitset>
#include<cmath>
using namespace std;
int main()
{
bitset<1000010> viz;
viz.reset();
int n;
freopen("ciur.in", "r", stdin);
freopen("ciur.out", "w", stdout);
scanf("%d", &n);
if(n == 2)
{
printf("%d\n", 0);
return 0;
}
int i;
if(viz[500000])
;
for(i = 1; i <= (sqrt((double)n) / 2); i++)
{
if(!viz[i])
{
int x = ((i << 1) + 1) * ((i << 1) + 1);
while(x < n && x > 0)
{
if(x % 2) viz[x >> 1] = 1;
x += (i << 1) + 1;
}
}
}
printf("%d\n", n - viz.count() - (n-1)/2 - 1);
return 0;
}