Dado un número entero N, genera el Nnúmero positivo th Kcon la siguiente propiedad en base decimal:
Para cada dígito Ien la posición Pde K, el número formado Kal eliminar el Pdígito th (es decir I) es divisible por I.
Ejemplo y observaciones
324 es tal número:
3divide242divide344divide32
Nota 1: suponemos que el número vacío es divisible por cualquier cosa, como 0. Por lo tanto 1, 2, 3, 4, 5, 6, 7, 8y 9son válidas.
Nota 2: K no puede contener el dígito 0, ya que no puede dividir por 0.
Entradas y salidas
- Puede tomar la entrada como un argumento de función, a través
STDIN, etc. - Puede devolver la salida de una función, a través de
STDOUT, etc. - Puede indexar esos números a partir de
0(en ese casoN >= 0) o de1(en ese casoN > 0), lo que más le convenga.
Casos de prueba
Esos ejemplos están indexados desde 0, así que si indexó desde 1, luego agregue 1a los números en la Ncolumna.
N Output
0 1
4 5
8 9
15 77
16 88
23 155
42 742
47 1113
121 4244
144 6888
164 9999
Puntuación
Este es el código de golf , por lo que gana la respuesta más corta en bytes.
code-golf
number
arithmetic
integer
Fatalizar
fuente
fuente

10000números excluibles .100000(1e5) números excluibles .Respuestas:
Jalea ,
2119 bytesLa entrada está indexada en 1. Pruébalo en línea!
Cómo funciona
fuente
Pyth, 20
Pruébelo aquí o ejecute Test Suite
N está indexado en 1 para esta respuesta.
Utiliza en gran medida la misma lógica que mi script de Python. Las diferencias notables se utilizan
.Dpara eliminar el dígito de la cadena durante la prueba y el manejo de excepciones para tratar con cero dígitos.fuente
Pyth, 26 bytes
Banco de pruebas.
fuente
Python 2, 93 bytes
Muy ineficiente La entrada está indexada en 1. Pruébalo en Ideone .
Versión alternativa, 100 bytes.
El código anterior realiza aproximadamente 10 x pruebas de divisibilidad donde solo se requiere x . A costa de sólo 7 bytes adicionales , la eficiencia puede mejorarse drásticamente, ya sea mediante la sustitución
*rcon*len(`r`)o refactorización el código de la siguiente manera.Esto maneja todos los casos de prueba con facilidad, incluso en Ideone .
fuente
JavaScript (ES6),
827876 bytesLa entrada está indexada en 1. Funciona construyendo una cadena del formulario
false|'24'%3|'34'%2|'32'%4y evaluándolo. Las cadenas se usan porque siguen siendo sintácticamente válidas en el caso de un solo dígito.La recursividad limita esto a aproximadamente n = 119. Versión iterativa para
888482 bytes:Editar: Guardado 2 bytes gracias a @ Dennis ♦.
fuente
"|'$`$''%$&"Guarda dos bytes.Rubí, 90
Enfoque similar a la respuesta Javascript de Neil, pero significativamente más largo debido a la falta de conversión de tipo implícita (excepto que los booleanos se convierten en cadenas por
gsub, lo cual es bueno).fuente
Ruby, 109 bytes
fuente
Hoon , 246 bytes
Sin golf:
Esto ... es realmente terrible. Me siento sucio por publicar esto.
Establezca
kla forma de cadena del número actual, asigne sobre la lista[0...(length k)-1]dividiendo la cadena en ese índice (a). Obtenga elacarácter, analícelo en un número y, si es,0devuelva no. Obtenga el prefijo deay suelde a la otra mitad de la división, analice un número, verifique si el índice lo divide de manera uniforme.++levydevuelve yes iff llamando a la función en todos los elementos de la lista también es yes. En este caso, la función++testcurry con yes, por lo que verifica que todos los caractereskfuncionen.Si estamos en el valor 0, devolvemos el número actual, o de lo contrario repetimos con n decrementado (e incremento
x)fuente