Pagini recente » Cod sursa (job #3199507) | Cod sursa (job #2229921) | Cod sursa (job #237977) | Cod sursa (job #592485) | Cod sursa (job #672791)
Cod sursa(job #672791)
#include <fstream>
#include <cstdlib>
#define N_MAX (2000000>>4)+1
using namespace std;
char isPrime[N_MAX];
int main()
{
int N, i, j, k, count;
ifstream in( "ciur.in" );
ofstream out( "ciur.out" );
in>>N;
for( i=1; ((i*i)<<1)+(i<<1) < N; ++i )
if( 0 == ( isPrime[i>>3] & (1<<(i&7)) ) )
{
k=(i<<1)+1;
for( j=((i*i)<<1)+(i<<1); (j<<1) < N; j+=k )
isPrime[j>>3]|=1<<(j&7);
}
for( count=1, i=1, j=3; j <= N; ++i, j+=2 )
if( 0 == ( isPrime[i>>3] & (1<<(i&7)) ) )
++count;
out<<count<<'\n';
return EXIT_SUCCESS;
}