Pagini recente » Cod sursa (job #445422) | Cod sursa (job #2813401) | Borderou de evaluare (job #1416578) | Cod sursa (job #654154) | Cod sursa (job #1167413)
#include<cstdio>
#include<bitset>
using namespace std;
const int NMAX = 2000000+5;
void Read(),Solve(),Print();
int N,Solution;
bitset<NMAX/2> Sieve;
int main()
{
Read();
Solve();
Print();
return 0;
}
void Read()
{
freopen("ciur.in","r",stdin);
freopen("ciur.out","w",stdout);
scanf("%d",&N);
}
void Solve()
{
int i,j,k;
Solution = 1;
for(i = 3, j = 1; i*i <= N; i += 2, j++)
if(!Sieve[j])
{
Solution++;
for(k = i*i/2; 2*k+1 <= N; k += i)
Sieve[k] = 1;
}
for(; i <= N; i += 2, j++)
if(!Sieve[j]) Solution++;
}
void Print()
{
printf("%d\n",Solution);
}