Pagini recente » Cod sursa (job #2944696) | Cod sursa (job #1313059) | Cod sursa (job #467723) | Cod sursa (job #2139362) | Cod sursa (job #160001)
Cod sursa(job #160001)
#include <string.h>
#include <stdio.h>
#define N 2000001
#define P 250
int main ()
{FILE *f,*fout;
f=fopen("ciur.in","r");
fout=fopen("ciur.out","w");
long n,i,j,k,S,vf,sw;
int sir[N];
int prim[P];
memset(sir,0,sizeof(sir));
memset(prim,0,sizeof(prim));
fscanf(f,"%ld",&n);
prim[0]=2;vf=0;
for (i=2;i*i<=n;i++)
{for (sw=1,j=0;j<=vf;j++)
{if(i%prim[j]==0){sw=0;break;}
}
if(sw==1)
{prim[++vf]=i;
}
}
for (i=2;i<=n/2;)
{for (j=2*i;j<=n;j+=i)
sir[j]=1;
do
{i++;
for (sw=1,j=0;j<=vf;j++)
{if(i%prim[j]==0&&i!=prim[j]){sw=0;break;}
}
}
while(sw==0&&i<=n/2);
}
sir[1]=1;
sir[2]=0;
for (S=0,i=1;i<=n;i++)
{if(!sir[i])S++;
}
fprintf(fout,"%ld",S);
fclose(fout);
return 0;
}