A veces, para conciliar el sueño, cuento lo más alto que puedo, mientras salteo los números que no están libres de cuadrados . Me emociona un poco saltar varios números seguidos, por ejemplo, 48,49,50NO están libres de cuadrados (48 es divisible por 2 ^ 2, 49 por 7 ^ 2 y 50 por 5 ^ 2).
Esto me llevó a preguntarme sobre el primer ejemplo de números adyacentes divisibles por alguna secuencia arbitraria de divisores.
Entrada
La entrada es una lista ordenada a = [a_0, a_1, ...]de enteros estrictamente positivos que contiene al menos 1 elemento.
Salida
La salida es el entero positivo más pequeño ncon la propiedad que a_0divide n, a_1divide n+1y, en general, a_kdivide n+k. Si no nexiste, el comportamiento de la función / programa no está definido.
Casos de prueba
[15] -> 15
[3,4,5] -> 3
[5,4,3] -> 55
[2,3,5,7] -> 158
[4,9,25,49] -> 29348
[11,7,5,3,2] -> 1518
Tanteo
Este es el código de golf ; El resultado más corto (por idioma) gana los derechos de fanfarronear. Se excluyen las lagunas habituales.

Respuestas:
Wolfram Language (Mathematica) , 51 bytes
Pruébalo en línea!
fuente
Casco , 7 bytes
Pruébalo en línea!
Explicación
fuente
MATL , 11 bytes
Pruébalo en línea!
No está exactamente optimizado para la velocidad ... el caso de prueba más grande toma un minuto completo usando MATL, y aproximadamente 0.03s en MATLAB. Existe una pequeña posibilidad de que MATL tenga un poco más de sobrecarga.
fuente
n:q`QtG\a]1)12 bytes peron:obviamente es lo mismo quefaquí. Siempre me olvido de eso, así que puedes agregarlo como una alternativa de 11 bytes.fq`QtG\a}@devuelve una copia extraña de la entrada.JavaScript,
4240 bytesLanzará un error de recursión si no hay solución (o si la solución es demasiado grande).
Guardado 2 bytes con un puntero de Rick Hitchcock
Intentalo
Ingrese una lista de números separados por comas.
fuente
[4,9,25,49].(a,y=n=0)=>a.some(x=>y++%x)?f(a,++n):nf=embargo, no olvides el .Python 3 , 62 bytes
Pruébalo en línea!
fuente
05AB1E , 9 bytes
Pruébalo en línea!
Explicación
fuente
Haskell ,
4544 bytesPruébalo en línea!
Editar: -1 byte gracias a nimi!
fuente
sum(zipWith mod[n..]a)<1.Limpio , 61 bytes
Pruébalo en línea!
fuente
[1..]lugar de[0..]evitar la salida0, un número entero no positivo, para listas singleton.Pyth , 11 bytes
Pruébalo en línea!
fuente
2al final? Estoy seguro de que hay más para guardar aquí, pero no sé Pyth.2soluciona el problemaJ , 23 bytes
Pruébalo en línea!
fuente
I.que solo devolverá 1 resultado? ¿No es posible que haya múltiples?R , 51 bytes
Pruébalo en línea!
El uso de advertencias
anyarrojaksobre la conversión implícita alogical, dondekestá el valor de retorno.fuente
l=c(15), yaseq(l)==1:lque en ese caso.seqes molesto así!seq_alonges demasiado largo.sumlugar deanydeshacerse de esas advertencias, para su información.Perl 6 , 34 bytes
Pruébalo en línea!
fuente
APL (Dyalog Unicode) ,
24 2322 bytesPruébalo en línea!
Técnicamente, esta es una función tácita. Tenía que hacerlo así, ya que la única entrada permitida es la lista de enteros. Usos
⎕IO←0(indexación 0)Vale la pena señalar que la función agota el tiempo de espera si
nno existe.Gracias a @ngn y @ H.PWiz por 1 byte cada uno.
¿Cómo?
fuente
Perl 5 , 49 + 2 (
-pa) = 51 bytesPruébalo en línea!
fuente
Japt, 10 bytes
Eventualmente saldrá
undefinedsi no existe una solución, si no bloquea su navegador primero.Intentalo
Explicación
fuente
Ruby , 48 bytes
Pruébalo en línea!
fuente
Python 2 , 80 bytes
Pruébalo en línea!
fuente
ML estándar (MLton) , 96 bytes
Pruébalo en línea!
Sin golf:
Pruébalo en línea! Comenzando con
n=1, la función sefincrementanhasta queallse cumple la condición, en cuyo casonse devuelve.tabulate(m,g)con algún enteromy funcióngconstruye la lista[g 0, g 1, ..., g m]. En nuestra condicióntabulatese llama con la longitud de la lista de entradaly una función que verifica si elielemento th seldividen+i. Esto produce una lista de booleanos, por lo queallcon la función de identidad sefn x=>xcomprueba si todos los elementos son verdaderos.Encontré un buen truco de golf para acortar la función de identidad en este caso en cuatro bytes: en lugar de lambda
(fn x=>x),hdse utiliza la función incorporada , que devuelve el primer elemento de una lista, y los bools resultantestabulatese envuelven en[y]para crear listas singleton.fuente
PowerShell ,
6562 bytesPruébalo en línea!
PowerShell no tiene el equivalente de un
anyosomesimilar, por lo que necesitamos un enfoque ligeramente diferente.Esto toma la entrada
$args[0]como una matriz, luego ingresa unforbucle infinito . Cada iteración establecemos$oser1(explicado más adelante) y establecemos$iser++$j. El incremento$jmantiene pestañas sobre cuál es el primer número de la solución propuesta, mientras que$ise incrementará sobre el resto de la solución propuesta.Luego enviamos cada elemento de la entrada
$args[0]a unForEach-Objectbucle. Dentro del bucle interno, multiplicamos booleanamente en$oel resultado de un cálculo. Esto hará que si el cálculo falla para un valor,$ose convertirá en0. El cálculo es!($i++%$_), o el booleano, no de la operación de módulo. Dado que cualquier valor distinto de cero es verdadero en PowerShell, esto convierte cualquier resto en un valor falsey, convirtiéndose así$oen0.Fuera del ciclo interno,
if$oes distinto de cero, hemos encontrado una solución incremental que funciona, por lo que generamos$jyexit.fuente
tinylisp , 108 bytes
La última línea es una función lambda sin nombre que toma una lista y devuelve un entero. Pruébalo en línea!
Sin golf
fuente
Julia 0.6 , 79 bytes
Pruébalo en línea!
Las entradas sin una solución válida provocarán bucles infinitos ... :)
fuente
Python 2, 78 bytes
EDITAR: -26 gracias a @Chas Brown
fuente
Jalea , 10 bytes
Pruébalo en línea!
fuente
NARS APL, 140 bytes, 70 caracteres
prueba
fuente
Java 8,
8275 bytesExplicación:
Pruébalo en línea.
fuente
Ruby ,
47 46 4342 bytesPruébalo en línea!
NB: la
(1..)sintaxis solo es compatible con ruby 2.6, por el momento TIO solo es compatible con 2.5, por lo que el enlace es a una versión anterior (43 bytes).fuente