Dado un número ny una llista de límite superior, los números que se pueden crear multiplicando dos o más números que consisten en solo sietes de longitud no menos que son menores que l. A161145 está cerca de este desafío, sin embargo, NO incluirá los 7, 77, 777, 7777, 77777, etc.
Ejemplos
n=anything, l<49 daría como resultado:
[]
n=1, l=49 daría como resultado:
7*7=49
f(1,49)=[49]
n=1, l=343 daría como resultado:
7*7 =49
7*7*7 =343
f(1,343)=[49,343]
n=2,l=6000 daría como resultado:
7*7 =49
7*7*7 =343
7*7*7*7=2401
7*77 =539
7*7*77 =3773
77*77 =5929
f(2,6000)=[49,343,539,2401,3773,5929]
n=3, l=604000 daría como resultado:
[49, 343, 539, 2401, 3773, 5439, 5929, 16807, 26411, 38073, 41503, 59829, 117649, 184877, 266511, 290521, 418803, 456533, 603729]
Etc ...
Reglas
- Usted no tiene que salida de pasos intermedios, esto se hizo para mayor claridad.
- La salida puede ser como una matriz o separada por cualquier carácter (incluso nuevas líneas).
- La salida debe estar en orden numérico, de menor a mayor.
- Para que el título sea relevante, lo más alto
nque debe manejarse esn=77(si no puede manejar ese alto, tenga en cuenta por qué: las restricciones de idioma son aceptables, la pereza no lo es). Esta limitación es para obstaculizar a aquellos que buscan construir todo el superconjunto en la memoria. - Si TIO no puede ejecutarse
n=77para su código, explique qué especificaciones se requieren para lograrlon=77. - Para que un producto sea válido, debe constar de al menos 2 números.
- Este es el recuento de bytes más bajo del código de golf se considerará victorioso.
- Puede elegir que la lista contenga elementos menores
lo menores que / iguales al. - BONIFICACIÓN : Si su código es exactamente 77 bytes, felicitaciones de mi parte; sin valor, lo sé.

no menos que son menores quel"n=77yl=7**7**7, por ejemplo?Respuestas:
05AB1E , 19 bytes
Pruébalo en línea!
Explicación
Muy ineficiente El enlace TIO realiza
ceil(l^(1/7))iteraciones en lugar de lasliteraciones utilizadas en la versión de golf para probar más fácilmente los grandes casos de prueba.fuente
$L7ׂ˜- Intenté obtener 5 bytes, no pude..po.stambién, pero incluso esos parecen más largos. Accidentalmente presioné 'actualizar' en la página TIO con mi implementación de ejemplo en lugar de ejecutar, la eliminé de la existencia. Aunque creo que fueron 26.Jalea ,
21201918 bytesTenga en cuenta que la salida no coincide con los OP. He dejado un comentario
Pruébalo en línea!
Cómo funciona
fuente
Python 2 ,
116113109 bytesTenga en cuenta que TIO no tiene suficiente memoria para el último caso de prueba.
Pruébalo en línea!
fuente
JavaScript (ES6),
103101bytesToma entrada en la sintaxis de curry
(n)(l).Casos de prueba
El último caso de prueba puede tardar unos segundos en completarse.
Mostrar fragmento de código
fuente
PHP, 142 bytes
-5 Bytes eliminando
$r=[];y reemplazandosort($r);con@sort($r);Versión en línea
Expandido
Una función recursiva realiza todas las permutaciones, incluido el límite
PHP, 145 bytes
Expandido
un bucle hasta incluir el límite de verificación de cada valor que es divisible por 49
Versión en línea
unos pocos bytes más y se puede crear una matriz asociativa clave el número y como valor una matriz de los sietes utilizados
Versión en línea
fuente
while($c=$t*$v[+$i++])$l<$c?f($c)&$r[$c]=$c;ahorra 3 bytes; Pero debería ser$l<=$c.$r?sort($r)&print_r($r):0;en lugar de$r=[];guardar uno.$z.=7;es 5 bytes más corto que$z=$z*10+7;.@es otros 4 bytes más cortos que$r?...:0;. (Gracias @ Christoph)$l<=$c? Parece que ayer no fue mi día para los$z.=72 bytes adicionales que he encontrado. Estoy pensando primero en tus otras dos sugerencias. Te pierdes el:bucle whilethat are less than l, en sus ejemplos ellosare less than or equal. Dependiendo de la aclaración,$c>$l||.../$c>$l?:...o$c<$l&&...son los más cortos.Ruby,
8986 bytesUna solución recursiva.
-3 bytes al recordar que cualquier cosa multiplicada por 0 es 0.
Pruébalo en línea!
fuente
Pyth , 22 bytes
Pruébalo en línea!
Especificaciones
l[newline]narray containing the sorted resultfuente
PHP,
128 125 130 129 127123 bytesfuncionará hasta 22
7s pero redondeará valores más grandes (7 ** 23 es punto flotante en una máquina de 64 bits).3 bytes guardados por Jörg, 3 por mí,
5 41 añadidos para evitar avisos de resultados vacíos.toma datos de los argumentos de la línea de comandos; ejecutar
-nro probarlo en línea .Descompostura
fuente
for([,$c,$z]=$argv,$n=1+$c;$c<$z;en lugar defor($n=1+$c=$argv[1];$c<$z=$argv[2];@lugar de$r&&suprimir la advertencia?$p<$z&&$r[$p]=$p$p>$z?:$r[$p]=$ppor ejemplon=1, l=343, está claro queldebería incluirse. Por lo tanto, no hay ahorros al usar$p>$z||$r[$p]=$po$p>$z?:$r[$p]=$p.@; se editará cuando el OP responda.$p>$z||o no$p<$z&&. Seguiré con la descripción.Brachylog , 28 bytes
Aquí hay muchas posibilidades de mejora en el lenguaje mismo; Parece que hay bastantes cosas que escribí que obviamente podrían mejorarse con algunos cambios en el diseño del lenguaje. Esta es la forma más corta que he encontrado con la versión actual. Bien puedo hacer algunas sugerencias para Brachylog que harían este programa más eficiente, más corto y más legible.
Muy, muy lento; TIO agota el tiempo de espera incluso en la respuesta no trivial más simple posible, por lo que no tiene mucho sentido proporcionar un enlace TIO. He verificado este programa ejecutándolo localmente.
Esta es una función (no un programa completo), cuya salida es un generador (a diferencia de una lista). Agregue
.w⊥al final de la función si desea ver todas las salidas, en lugar de solo la primera. (Tenga en cuenta que esto realmente no importa en la práctica, porque como el programa es demasiado lento para TIO de todos modos, debe ejecutarlo localmente, y el intérprete local Brachylog se ejecuta en un REPL que puede describir un generador muy bien).Explicación
fuente
Bash + GNU utilidades, 108
Pruébalo en línea . TIO tarda aproximadamente un minuto en el último caso de prueba. Mis resultados coinciden con los de Dennis.
fuente
Pyth -
57514942 bytesIntentalo
fuente
7y77para su entrada actual.mlugar deFoVetc. (programación funcional vs. control de ejecución); usando enhQlugar de@Q0; usando eneQlugar de@Q1; usando eni*hQ]7Tlugar del largo for-loop para generar777...7.