Pagini recente » Clasament preONI 2007, Runda Finala, Clasa a 10-a | Cod sursa (job #502488) | Cod sursa (job #571446) | Cod sursa (job #307931) | Cod sursa (job #153417)
Cod sursa(job #153417)
#include <stdio.h>
using namespace std;
#define in "ciur.in"
#define out "ciur.out"
#define NMAX 2000004
#include <vector>
char OK[NMAX];
int N, nrsol;
vector<int> V;
int main()
{
freopen( in, "r", stdin );
freopen( out, "w", stdout );
scanf( "%d", &N );
int i, j;
for ( i = 2; i <= N; ++i ) OK[i] = 1;
for ( i = 2; i * i <= N; ++i )
{
if ( OK[i] == 1 )
{
j = 2;
while ( i*j <= N )
{
OK[i*j] = 0;
j++;
}
}
}
for ( i = 2; i <= N; ++i ) if ( OK[i] == 1 ) nrsol++;
printf( "%d", nrsol );
/*if ( nrsol <= 1000 )
{
for ( i = 2; i <= N; ++i )
if ( OK[i] == 1 )
printf( "%d ", i );
}
else
{
nrsol = 0;
for ( i = N; i > 1; --i )
{
if ( OK[i] == 1 ) { V.push_back( i ); if ( V.size() == 1000 ) break; }
}
for ( i = V.size()-1; i >= 0; i-- )
printf( "%d ", V[i] );
}*/
return 0;
}