Hoy, mientras escribo esto, es el 31 de marzo. En los Estados Unidos, esto es 3/31
. Estaba jugando con 331
un número para presentar un desafío, y descubrí que sus residuos (módulo de números pequeños) son palindrómicos. 331%2=1, 331%3=1, 331%4=3, 331%5=1, 331%6=1
( 11311
)
Su desafío aquí es, cuando se le da un número entero n > 2
, generar los primeros n
números positivos que tienen residuos palindrómicos cuando se toman el módulo [2,n]
.
Por ejemplo, para la entrada 7
, la salida debería ser 1, 42, 43, 140, 182, 420, 421
. Aquí está la tabla que explica por qué ese es el caso:
mod
num | 2 3 4 5 6 7
-----------------
1 | 1 1 1 1 1 1
42 | 0 0 2 2 0 0
43 | 1 1 3 3 1 1
140 | 0 2 0 0 2 0
182 | 0 2 2 2 2 0
420 | 0 0 0 0 0 0
421 | 1 1 1 1 1 1
Entrada
Un solo entero positivo n
con n > 2
cualquier formato conveniente .
Salida
La matriz / lista resultante de los primeros n
residuos palindrómicos, como se describe anteriormente. De nuevo, en cualquier formato adecuado.
Reglas
- Para
n > 10
, suponga que la lista de residuos se aplana antes de verificar si es un palíndromo. Es decir,[1, 10, 11]
es palindrómico, pero[1, 10, 1]
no lo es. - Un programa completo o una función son aceptables. Si es una función, puede devolver el resultado en lugar de imprimirlo.
- Si es posible, incluya un enlace a un entorno de prueba en línea para que otras personas puedan probar su código.
- Las lagunas estándar están prohibidas.
- Este es el código de golf, por lo que se aplican todas las reglas habituales de golf, y gana el código más corto (en bytes).
Ejemplos
[input]
[output]
3
[1, 6, 7]
4
[1, 4, 5, 8]
5
[1, 50, 60, 61, 110]
6
[1, 30, 31, 60, 61, 90]
7
[1, 42, 43, 140, 182, 420, 421]
8
[1, 168, 169, 336, 337, 504, 505, 672]
9
[1, 2520, 2521, 5040, 5041, 7560, 7561, 10080, 10081]
10
[1, 280, 281, 560, 1611, 1890, 1891, 2170, 2171, 2241]
11
[1, 22682, 27720, 27721, 50402, 55440, 55441, 78122, 83160, 83161, 105842]
fuente
n
elementos.[1, 10, 11]
es palindrómico, pero[1, 10, 1]
no lo es" parece matemáticamente incorrecto.Respuestas:
Haskell, 57 bytes
Ejemplo de uso:
f 4
->[1,4,5,8]
. Pruébalo en línea!El primero
=<<
está en el contexto de la función y se traduce a lambda\x -> reverse x == x
y el segundo=<<
está en el contexto de la lista y es equivalente aconcatMap
, por ejemplo, map-and-flatten-one-list-level.fuente
05AB1E , 12 bytes
Pruébalo en línea!
Explicación
fuente
Mathematica, 79 bytes
fuente
JavaScript (ES6), 104 bytes
Manifestación
Nota : debido a las numerosas llamadas recursivas, esto se bloqueará para n> 8 en Firefox o n> 10 en Chrome.
Mostrar fragmento de código
fuente
Python 2,
9897 bytesPruébalo en línea!
fuente
12
debido a la extraña regla que[1, 10, 11]
se considera un palíndromoMATL , 19 bytes
Gracias a @AdmBorkBork por señalar un error en una versión anterior del código, ahora corregido
Pruébalo en línea!
Explicación
fuente
Scala,
908682 bytesExplicación
Casos de prueba
Resultados
Ediciones
# 1 (90 => 86)
# 2 (86 => 82)
(2 to n).map(%i)
=>(2 to n)map(%i)
fuente
def f(n:Int)=
a(n:Int)=>
, ya que también define una función (pero sin nombre). ¡Ahorra 4 bytes!Jalea , 12 bytes
¿Cómo?
Pruébalo en línea!
fuente
CJam , 28 bytes
Pruébalo en línea!
Explicación
fuente
PHP, 93 bytes
Salida de bucles de versión 2 en línea como cadena
Expandido
PHP 130 bytes
Versión en línea 2 Loops
Expandido
PHP, 139 bytes con 1 bucle
Versión en línea 1 Loop
Corre con
Expandido
fuente
QBIC , 48 bytes
Beats Mathematica! Ejecución de muestra:
Explicación:
fuente
Japt , 26 bytes
Pruébalo en línea! Toma unos segundos en todos entradas, así que sea paciente, por favor.
Esto sería considerablemente más corto (y más rápido) si hubiera una función integrada para obtener los primeros N números que satisfagan alguna condición:
fuente