Pagini recente » Cod sursa (job #112176) | Cod sursa (job #2372066) | Cod sursa (job #2068356) | Cod sursa (job #872868) | Cod sursa (job #1241392)
#include <cstdio>
#include <cmath>
using namespace std;
inline int cmmdc(register int a, register int b)
{
register int r;
do
{
r=a%b;
a=b;
b=r;
}while(b);
return a;
}
inline int prim(int p)
{
register int i;
int val=(int)sqrt((double)p);
if(p==2)
return 1;
if(p<2)
return 0;
if((p&1)==0)
return 0;
for(i=3;i<=val;i=i+2)
{
if(cmmdc(p,i)!=1)
return 0;
}
return 1;
}
int main()
{
freopen("ciur.in","r",stdin);
freopen("ciur.out","w",stdout);
register int n,i,nr=0;
scanf("%d",&n);
if(n>2)
nr=1;
for(i=3;i<=n;i=i+2)
{
if(prim(i))
nr++;
}
printf("%d",nr);
return 0;
}