Pagini recente » Cod sursa (job #1119042) | Cod sursa (job #534997) | Cod sursa (job #2000104) | Cod sursa (job #1857356) | Cod sursa (job #544933)
Cod sursa(job #544933)
#include <fstream>
#include <cstdlib>
#define N_MAX 2000000/16+1
using namespace std;
char isPrime[N_MAX];
int main( void )
{
int N, i, j, c;
ifstream in( "ciur.in" );
in>>N;
for( i=1; ((i*i)<<1) + (i<<1) < N; ++i )
if( 0 == ( isPrime[i>>3] & (1<<(i&7)) ) )
{
c=(i<<1)+1;
for( j=((i*i)<<1)+(i<<1); (j<<1) < N; j+=c )
isPrime[j>>3]|=(1<<(j&7));
}
for( i=1, j=1; (j<<1)+1 <= N; ++j )
if( 0 == ( isPrime[j>>3] & (1<<(j&7)) ) )
++i;
ofstream out( "ciur.out" );
out<<i<<'\n';
return EXIT_SUCCESS;
}