Naiwnie
select( i -> i == fromdigits( Vecrev( digits( i ) )), primes( [ 2, 1000 ] ) )
Lepiej
- p10( n ) = 10^n;
- rew( m, c ) = {
- local( t, n );
- t = 0; n = m;
- for(i=1, c,
- t = t*10 + n%10;
- n \= 10 );
- return( t ) }
- range( p, w, disp = 0 ) = {
- local( w10, mi, mj, z, pal, q ,k = -1);
- w10 = p * p10( w ) + p;
- mi = p10( w \ 2 + 1 );
- mj = p10( w \ 2 );
- z = p10( w \ 2 - 1 ) - 1;
- for( i = 0, z,
- pal = rew( i, w\2 );
- q = w10 + i * mi + pal;
- for( j = 0, 9,
- if( isprime(q + j * mj ),
- k++;
- if( disp,
- if((k % 8)==0,print());
- print1( q + j * mj, "\t") ) ) ) );
- return( [ k+1, q + 9*mj ]); }
- gener( disp=0 ) = {
- local( t=[ 1, 3, 7, 9], s=5, x,start );
- start = getabstime();
- for( w = 1, 8,
- for( i = 1, 20 - 2*w, print1(" "));
- print1( p10(w*2));
- for( i = 1, 4,
- print1(".");
- x=range(t[i], w*2, disp);
- s+=x[1]; );
- x[2] , s, (getabstime()-start)/1000.0) )
- }