Pagini recente » Cod sursa (job #2639347) | Cod sursa (job #727563) | Cod sursa (job #240210) | Cod sursa (job #2402195) | Cod sursa (job #2515337)
#include <iostream>
#include <math.h>
#define NMAX 2000003
using namespace std;
bool ciur[NMAX];
bool isPrime(long x)
{
if(x<2)
return false;
if(x==2)
return true;
if(x%2==0)
return false;
long root=sqrt(x);
for(long i=3;i<=root;i=i+2)
if(x%i==0)
return false;
return true;
}
void eras(long n)
{
ciur[0]=false;
ciur[1]=false;
ciur[2]=true;
for(long i=4;i<=n;i=i+2)
ciur[i]=false;
for(long i=3;i<=n;i=i+2)
{
if(isPrime(i))
{
ciur[i]=true;
for(long k=i*i;k<=n;k=k*i)
ciur[k]=false;
}
}
}
int main()
{
long n;
cin>>n;
eras(n);
long ct=1;
for(long i=3;i<=n;i=i+2)
if(ciur[i])
ct++;
cout<<ct;
return 0;
}