Este desafío de encadenamiento de respuestas ha terminado oficialmente, lo que resulta en la victoria de Wheat Wizard , con un total de 7 respuestas. Cualquier otra respuesta es bienvenida, pero no influirá en la respuesta aceptada para este desafío, ni en el ganador.
Tarea:
Imprima todos los divisores positivos de un número x
tomado como entrada.
Entrada:
Un número único x
que es el número (en base 10) cuyos divisores positivos deben calcularse.
Salida:
Todos los divisores positivos de x
. Se permite cualquier formato, incluyendo \n
, ,
, ;
y un espacio en blanco como separadores, siempre y cuando que es comprensible. La salida también puede ser una matriz de enteros o cadenas (por ejemplo:) [1, 2, 3, 5, 30]
. Puede generar los divisores en stdout, consola o el equivalente en su idioma o pueden ser devueltos desde una función .
Reglas
- Un usuario no puede responder dos veces seguidas
- Su respuesta puede eliminar, agregar o reemplazar como máximo 15 caracteres de la respuesta anterior (el espacio en blanco no cuenta), además de la Respuesta 2, que puede "transformar" hasta 20 caracteres para comenzar
- No está permitido publicar una respuesta en un lenguaje de programación que ya tenga una respuesta, la excepción es una versión completamente diferente de ese idioma (por ejemplo: si publico una respuesta en
Python 2.7
, puede enviar una enPython 3
, pero no enPython 2.6
) - Las lagunas estándar no están permitidas
- No está permitido usar elementos integrados para obtener divisores , por el bien de este desafío
- Usted debe incluir el número de la respuesta y el nombre del idioma en el título de la pregunta y el número de caracteres cambiado desde la anterior respuesta
Puntuación
El usuario con la mayor cantidad de envíos una vez que las cosas se resuelven gana. En caso de empate, gana el usuario con la puntuación más alta en una de sus respuestas. Si también hay un empate en el puntaje, entonces el usuario con el envío más antiguo (la respuesta con el puntaje más alto) será declarado ganador.
Nota: "liquidar" <=> 7 han pasado 3 días desde que se envió la última respuesta
Ejemplos:
Input, Output:
14 => [1, 2, 7, 14]
25 => [1, 5, 25]
65 => [1, 5, 13, 65]
114 => [1, 2, 3, 6, 19, 38, 57, 114]
O cualquier otro resultado equivalente que satisfaga las condiciones mencionadas.
Nota final : esta pregunta es mejor si ordena las respuestas por las más antiguas. Publicaré la primera respuesta en Python 2.7, por lo que debe publicar la segunda respuesta dependiendo de esa. ¡Buena suerte y diviertete!
Tabla de clasificación:
Esta lista puede estar desactualizada, puede editarla:
1) Asistente de trigo [Líder actual 🏆] : 7 respuestas - Python 1.6 , 05AB1E , En realidad , Del | m | t , WSF , Brain-Flak , Lenguage
2) Riley: 3 respuestas - En serio , CJam , 2sable
3) Jonathan Allan: 2 respuestas - Python 3 , Jelly
3) ETHproductions: 2 respuestas - Japt , Pyth
3) Mistah Figgins: 2 respuestas - Befunge-98 , Brain-Flak Classic
6) Riker: 1 respuesta - MATL
6) dzaima: 1 respuesta - SOGL 0.8.2
6) LegionMammal978: 1 respuesta - Espacio en blanco
6) Nick Clifford: 1 respuesta - Ohm
6) Lynn: 1 respuesta - GolfScript
6) MickyT: 1 respuesta - Cubix
Calculadora de distancia
Puede usar este fragmento para calcular la distancia entre dos entradas:
function L(s,t){if(s===t)return 0;var S=s.length,T=t.length;if(S*T===0)return S+T;for(var i=0,v0=[],v1=[];i<=T;i++)v0[i]=i;for(i=0;i<S;i++){v1[0]=i+1;for(var j=0;j<T;j++)v1[j+1]=Math.min(v1[j]+1,v0[j+1]+1,v0[j]+(s[i]!=t[j]));for(j=0;j<=T;j++)v0[j]=v1[j]}return v1[T]}
<textarea id=A rows=10></textarea><textarea id=B rows=10></textarea><br>
Distance: <span id=O>0</span> <button onclick="O.innerHTML=L(A.value.replace(/\s/g,''),B.value.replace(/\s/g,''))">Run</button>
fuente
Respuestas:
Respuesta 20, Brain-Flak , 11
Me gustaría tomar el tiempo para agradecer a todos los que han ayudado a contribuir a este objetivo:
Riley, 20 bytes
LegionMammal, 15 bytes
ETHproductions, 11 bytes
Lynn, 1 byte
Los siguientes usuarios no pudieron contribuir bytes directamente pero ayudaron de otras maneras:
Mistah Figgins
DJMcMayhem
Feersum
¡Gracias a todos por hacer esto posible!
Pruébalo en línea!
fuente
Respuesta 3: MATL, Distancia 15
fuente
%
hacen que sea realmente difícil continuar. ¡Buena suerte a los demás y realmente espero que este desafío no "muera" aquí!Z\
. El código relevante aquí es el:tGw\~)
(que escribí en el chat, no un builtin)Z\
, no\
, es "divisores". El capítulo de las tres últimas columnas indica el prefijo (X
,Y
oZ
).\
por sí mismo es la primera columna, es decir, "mod"Respuesta 7, Japt, 15
Pruébalo en línea!
Cambió
#b∫I:b;\?t
aò f!vU
(10 puntos) y agregó un poco más de código Brain-Flak cambiando~(()
a((()<>))
(5 puntos). Creo que el código en el que estamos trabajando esExplicación
fuente
Respuesta 8, 05AB1E , 14
Pruébalo en línea!
Explicación
Afortunadamente, 05AB1E tiene un intérprete de Python incorporado (más o menos). Para hacer esta carrera empujamos
como una cuerda a la cima de la pila. Tenemos que usar literales de cadena en lugar de comentarios aquí porque 05AB1E realmente no le gustan los comentarios en su código de Python. También tenemos que deshacernos del
"
código original porque hace que la cadena finalice prematuramente.Una vez que la cadena ha sido empujada, la usamos
.e
para ejecutarla como código python.Trabajar hacia Brain-Flak
Pude agregar 5 caracteres adicionales para el objetivo de hacer una respuesta Brain-Flak. Hubiera podido agregar 6 pero, por desgracia, olvidé que los espacios en blanco no cuentan para el puntaje.
Hasta ahora tenemos:
fuente
Respuesta 13, Pyth , 15
Pruébalo en línea!
Explicación
Por lo tanto, no sé mucho sobre Pyth, pero lo que sí sé es que el código fuente tiene la forma de un árbol, cada comando lleva un número específico de argumentos a su derecha. El árbol del programa divisor que escribí se ve así:
Q
es la entradaf
toma dos argumentos,F
yA
, y devuelve los artículosT
enA
dondeF(T)
devuelve un valor Truthy. En este caso,F
es una función que devuelve el NOT lógico deQ%T
, yA
esSQ
, que crea el rango[1...Q]
. Esto tiene el efecto de filtrar solo a los enterosT
en[1...Q]
dóndeQ%T == 0
.Para evitar analizar el resto del código, todo está envuelto en una cadena, luego
|Q"...
devuelve el OR lógico deQ
y la cadena. ComoQ
siempre es positivo, siempre es verdadero y, por lo tanto, siempre regresa del OR lógico.Trabajar hacia Brain-Flak
fuente
Respuesta 16, GolfScript, 15
Pruébalo en línea!
Agregué
~:),(;{\%!},p#
, usando nueva línea como un nombre de variable para ajustarse a la restricción de tamaño, y aplasté todo el programa nuevamente en una línea para comentarlo. Esta fue la distancia 14. Luego, agregué{
antes}printdiv
para Brain-Flak.Trabajar hacia Brain-Flak
fuente
Respuesta 17, CJam , 15
Pruébalo en línea!
Trabajar para Brain-Flak (quedan 30)
fuente
)({}(((
a()({})((
a costa de sólo dos, este no es el programa exacto que tenía en mente, pero()
, y({})
son a la vez no-ops en este contexto.Respuesta 4 - Gelatina , 4
Pruébalo en línea!
Código relevante:
El
)
actúa como un descanso entre los enlaces en lo que se refiere al programa de análisis (creo).Lo integrado sería
ÆD
, en su lugar, esto crea un rango desde1
la entrada conR
, comprueba la divisibilidad por la entrada conḍ⁸
, luego devuelve una lista de los índices basados en uno verdadero conT
.fuente
Respuesta 9, espacios en blanco, 15
Donde
<SPACES>
se reemplaza por la siguiente cadena, dondeT
es 0x09,L
es 0x0A yS
es 0x20:Nueva línea literal añadida para mayor claridad. Notó que las reglas solo especifican caracteres que no son espacios en blanco. No, no pude evitarlo.
Trabajar hacia Brain-Flak
No tengo idea de lo que estaba pasando antes, así que ahora tenemos:
fuente
Respuesta 18, FSM , 15
(Esto toma entrada y salida a través del código de caracteres)
Explicación
El FSM es esencialmente un ataque mental, excepto que utiliza espacios en blanco en lugar del conjunto habitual de operadores de ataque mental. Aquí está el código descompilado en brainfuck:
Progreso hacia Brain-Flak
Como WSF es solo un espacio en blanco, pude agregar 15 caracteres más al código Brain-Flak. Esto nos pone a 15 de distancia de la respuesta, así que siéntase libre de publicarla.
Como no voy a poder publicar la respuesta Brain-flak, pensé que me tomaría el tiempo para agradecer a todos los que han ayudado a contribuir a este objetivo:
Riley, 16 bytes
LegionMammal, 15 bytes
ETHproductions, 11 bytes
Lynn, 1 byte
Los siguientes usuarios no pudieron contribuir bytes directamente pero ayudaron de otras maneras:
¡Gracias a todos por hacer esto posible!
fuente
Respuesta 19, 2sable , 15
Pruébalo en línea!
Eliminé el espacio en blanco adicional, envolví todo lo que existía antes en una cadena, luego:
fuente
Respuesta 21, Cubix , 15
Finalmente logré encajar esto :) Afortunadamente es después de que la respuesta de Brain-Flak se hizo, porque creo que habría obstaculizado. Necesitaba los 15 completos para implementar.
Esto se asigna al siguiente cubo
Puede probarlo aquí , pero deberá pegarlo. Sospecho que algunos de los especiales están causando problemas para el enlace permanente.
El código es esencialmente más de 2 líneas. Las partes importantes son:
I s )
Esto obtiene la entrada, intercambia la parte superior de la pila (0 habría funcionado también) e incrementa% ?
Obtener el mod y probar. Si 0 continúa adelante o baja a la redirección; O N o
gota los resultados mod y la salida el número seguido de una nueva líneau
giro en U en la línea de abajoSiguiendo está en orden ejecutada
; - ! @
Quitar el 10 de pila, el número de resta de la entrada, prueba y terminará si cero< ; u
Redireccionar objetivo para la primera prueba. Retire la parte superior de la pila (ya sea mod o resta el resultado) y gire en U hacia atrás para aumentarfuente
Respuesta 6, Python 1.6, 15
Quité el
%
símbolos y comenté la primera línea y un poco de la última línea. Esto solo me costó 10 de mis 15 puntos. Sin embargo, todavía no había terminado; como Python 1 no tiene+=
tuve que reemplazari+=1
con uni=i+1
costo adicional de 3 puntos. Como me quedaban 2, también agregué((
al principio. Estoy planeando hacer una presentación en Brain-Flak más tarde y necesito padres.fuente
Respuesta 10, ohmios , distancia 5
...dónde
<SPACES>
se reemplaza por esa cadena monstruosa de la respuesta de espacios en blanco .Una respuesta un poco descarada, ya que todo lo demás es solo un cable que no se ejecuta.
fuente
Respuesta 12, en serio , 15
Pruébalo en línea!
La única diferencia de la realidad respuesta de es que Gravemente usa backticks para marcar una función donde Actually usa
⌠
y⌡
simplemente hacemos los caracteres adicionales en una cadena y luego los sacamos y descartamos.Trabajar hacia Brain-Flak
fuente
Respuesta 14, Del | m | t , 15
Pruébalo en línea!
Explicación
Realmente estoy empezando a abusar del hecho de que los espacios en blanco no se cuentan para la diferencia aquí. A Del | m | t realmente no le importa mucho qué caracteres tiene, por lo que la gran mayoría del código es una secuencia de espacios y retornos de carro al comienzo del programa. Las partes visibles reales del código no se ejecutan en absoluto.
Aquí está el código transcrito de una manera más "razonable":
Pruébalo en línea!
Cómo funciona en el nivel bajo
Para empezar tenemos
O R ^ V
esto sirve para tomar la entrada en el primer bucle y funciona como no operativo en todas las demás ocasiones.Luego usamos
O
para hacer una copia de la entrada para más tarde.@ A K T
recuerda la variable almacenada en la posición de memoria -1 (al comienzo del programa esto es 0) yA J
incrementa.O @ A K U
Almacena el valor ahora incrementado nuevamente en la posición de memoria -1 para nuestro próximo ciclo.N
calcula el mod de la copia de la entrada que hicimos hace un tiempo y el valor recién recuperado de la memoria y loR
niega.Juntos
N R
crean un booleano que indica si nuestra entrada es divisible por los TOS.Almacenamos una copia de este booleano en el espacio de memoria -2 usando
O @ B K U
y recuperamos el valor del espacio de memoria -2 usando@ A K T
.Intercambiamos los dos elementos superiores con
Q
para garantizar que el booleano esté en la parte superior y genere el valor si el booleano es verdadero usando^ X
.Si el booleano era falso, tenemos un valor adicional que debe ser erradicado, por lo que recordamos el booleano que almacenamos en el espacio -2
@ B K T
y sacamos un valor si es falsoR ^ P
.Duplicamos el valor de entrada con
O
y restamos el valor en la memoria -1 con@ A K T K
. Si esto es cero salimosR ^ _
.Por último, tenemos
@ ^
estos saltos sea cual sea el siguiente valor. Necesitamos esto porque hay un montón de basura (en realidad solo un@
símbolo) generada por la parte visible del código.Una vez que llega al final, vuelve al principio.
Cómo funciona a alto nivel
La idea básica es que tenemos un valor almacenado principalmente en la ubicación de memoria -1 que se incrementa cada vez que hacemos un bucle. Si ese valor divide nuestra entrada, la sacamos y cuando los dos son iguales, finalizamos la ejecución.
Progreso hacia Brain-Flak
Debido a que el espacio en blanco no cuenta para la diferencia, pude cambiar el código sin gastar ninguno de mis 15 puntos y, por lo tanto, todos ellos se invirtieron en el código Brain-Flak.
Aquí está nuestra posición actual.
fuente
Respuesta 15, Befunge-98, 15
Pruébalo en línea!
(Probablemente haya muchos espacios en blanco innecesarios, pero no puedo molestarme en jugar golf ahora mismo)
Usé los 15 para el programa Befunge, por lo que esta vez no hubo cambios en el Brain-flak.
Mi estrategia principal para esto fue enviar la dirección IP verticalmente y usar espacios en blanco para ejecutar ciertos caracteres del código preexistente.
Explicación:
El código que le importa al programa Befunge es este:
Lo que es equivalente a:
fuente
Respuesta 2 - Python 3 , 5
Pruébalo en línea!
fuente
async
oawait
incorporados? ¿Eso contaría como un idioma completamente diferente?Respuesta 5 - SOGL 0.8.2 , 9
Explicación:
Nota: el intérprete actualmente necesita que
\n
se reemplace el s¶
para no contarlo como entrada, pero el analizador considera ambos intercambiables.fuente
Respuesta 11, en realidad , 15
Pruébalo en línea!
Explicación
En realidad, tiene un buen componente
÷
para encontrar los factores de un número, sin embargo, no se nos permite usar dichos componentes.Comienzo almacenando la entrada en los registros para que no se vea afectada por lo que está por venir. Hago esto usando
╩
pero podría haber usado con la misma facilidad uno de los otros comandos disponibles.Luego pego el código que ya teníamos (eliminé todo el espacio en blanco porque era molesto trabajar con él, puedo hacerlo porque "el espacio en blanco no cuenta"). Afortunadamente, esto no hace nada cuando la pila está vacía.
Luego tenemos el resto del programa.
Trabajar hacia Brain-Flak
Todo ese trabajo y solo pude obtener un par extra.
fuente
[]
, podemos tener el código Brainfcuk después. Podría abrir posibilidades.23, Brain-Flak Classic, 13
Originalmente, @Wheat Wizard había publicado el código brain-flak-classic tal como estaba en la respuesta 22:
Esto tiene 17 caracteres de descuento. Sin embargo, pude comprimir esto simplemente moviéndome
{})
más a la derecha en el código propuesto para obtener¡Que solo tiene 13 caracteres! Entonces, todo lo que hice fue agregar / quitar corchetes para obtener el código propuesto.
El código original que publiqué tenía un error tipográfico, ahora está arreglado. (¡ Gracias @WheatWizard! )
fuente
Respuesta 1 - Python 2.7
Distancia: NA - Primera respuesta
Pruébalo en línea!
fuente
22, Lenguage , 15
Lenguage es un esolang que solo se preocupa por cuánto tiempo el programa no se trata de su contenido. Por lo tanto, podemos crear cualquier programa de lenguaje que queramos rellenando el último programa con la cantidad adecuada de espacios en blanco. Lenguage se compila en brainfuck, por lo que reutilizaremos el programa brainfuck que escribí hace un tiempo
Hice algunos cambios en el programa principal para facilitar respuestas posteriores, pero el resultado final se ve así:
donde
<SPACES>
representa 55501429195173976989402130752788553046280971902194531020486729504671367937656404963353269263683332162717880399306 caracteres de espacio.¿Estoy abusando del espacio en blanco no cuenta la regla? Quizás.
Trabaja hacia Brain-Flak Classic
Ya teníamos a todos esos padres allí, así que pensé en comenzar en el camino hacia Brain-Flak Classic.
fuente