Pagini recente » Cod sursa (job #302302) | Cod sursa (job #3219980) | Cod sursa (job #192513) | Cod sursa (job #1544445) | Cod sursa (job #797508)
Cod sursa(job #797508)
#include<cstdio>
#include<bitset>
using namespace std;
int n,c,i,j,k,m,ciur(int);
bitset<1000010> p;
int main ()
{
FILE *r = fopen("ciur.in", "r");
FILE *w = fopen("ciur.out", "w");
fscanf(r, "%d", &n);
if(n%2==0)n--;
fprintf(w, "%d",ciur(n));
return 0;
}
int ciur(int n)
{
if(n==1)return 1;
if(n==3)return 2;
c=1;m=n/2;
for(i=3,k=1;i*i<=n;i+=2,k++)
if(p[k]==0)
{
c++;
for(j=2*k*k+2*k;j<=m;j+=i)p[j]=1;
}
for(;k<=m;k++)
if(p[k]==0)c++;
return c;
}