Pagini recente » Cod sursa (job #1082157) | Cod sursa (job #1114975) | Cod sursa (job #1734240) | Cod sursa (job #1906359) | Cod sursa (job #146748)
Cod sursa(job #146748)
#include <stdio.h>
char V[260000];
int ciur ( int n )
{
int i,p,j;
for ( i=1 ; ((i*i)<<1)+(i<<1)<=n ; i++ )
if (!(V[i>>3] & (1<<(i&7))))
for ( j= ((i*i)<<1) + (i<<1) ; (j<<1)+1<=n ; j+= (i<<1)+1 )
V[j>>3]|=i<<(j&7);
for ( i=0,p=1 ; (p<<1)+1 <=n ; p++ )
if (V[p>>3]&(1<<(i&7))) i++;
return i;
}
int main ()
{
int n,i;
freopen ( "ciur.in" , "r" , stdin );
scanf ( "%d" , &n );
fclose ( stdin );
int x = ciur(n);
freopen ( "ciur.out" , "w" , stdout );
printf ( "%d\n" , x );
for ( i=1 ; (i<<1)+1<=n ; i++ )
if ( V[i>>3]&(1<<(i&7)) )
{
x--;
if (!x) printf ( "%d\n" , (i<<1)+1 );
if (x<1000) printf ( "%d " , (i<<1)+1 );
}
fclose ( stdout );
return 0;
}