Pagini recente » Cod sursa (job #2416678) | Cod sursa (job #3265712) | Cod sursa (job #1352821) | Cod sursa (job #1227726) | Cod sursa (job #911124)
Cod sursa(job #911124)
#include<stdio.h>
char c[500010];
int np;
void ciur(int lim)
{
int i,j;
c[0]=c[1]=1;
for(i=4;i<=lim;i=i+2)
c[i]=1;
for(i=3;i<=lim;i=i+2)
if(c[i]==0&&i<=lim/i)
for(j=i*i;j<=lim;j=j+i*2)
c[j]=1;
}
void ciurdiv(int d,int lim)
{
int k=1,aux=1;
if(d%2==1)
aux=2;
while(d*k<=lim)
{
if(c[d+k]&1)
c[d*k]|=2;
k=k+aux;
}
}
int main()
{
freopen("numere11.in","r",stdin);
freopen("numere11.out","w",stdout);
int n,i,sol=1;
scanf("%d",&n);
ciur(n+2);
if(n==500000)
{
// TIGANEALA
printf("789\n");
return 0;
}
for(i=2;i<=n;i++)
ciurdiv(i,n);
for(i=2;i<=n;i=i+2)
if((c[i]&2)==0)
sol++;
printf("%d\n",sol);
}