Dados dos enteros positivos A y B , devuelve la posición p que minimiza el número de factores primos (contando multiplicidades) del entero resultante, cuando B se inserta en A en p .
Por ejemplo, dados A = 1234 y B = 32 , estas son las posibles inserciones (con p siendo indexado en 0) y la información correspondiente sobre sus factores primos:
p | Resultado | Factores primos | Ω (N) / Cuenta 0 | 321234 | [2, 3, 37, 1447] | 4 4 1 | 132234 | [2, 3, 22039] | 3 2 | 123234 | [2, 3, 19, 23, 47] | 5 5 3 | 123324 | [2, 2, 3, 43, 239] | 5 5 4 | 123432 | [2, 2, 2, 3, 37, 139] | 6 6
Puede ver que el resultado tiene un número mínimo de factores primos, 3, cuando p es 1. Por lo tanto, en este caso particular, debe generar 1 .
Especificaciones
Si hay varias posiciones p que minimizan el resultado, puede optar por mostrarlas todas o cualquiera de ellas.
Puede elegir indexación 0 o indexación 1 para p , pero esta elección debe ser coherente.
A y B pueden tomarse como enteros, cadenas o listas de dígitos.
Puede competir en cualquier lenguaje de programación y puede tomar entradas y proporcionar salidas a través de cualquier método estándar , mientras toma nota de que estas lagunas están prohibidas por defecto. Este es el código de golf, por lo que gana la presentación más corta (puntuada en bytes).
Casos de prueba
A, B -> p (índice 0) / p (índice 1) 1234, 32 -> 1/2 3456, 3 -> 4/5 378, 1824 -> 0/1 1824, 378 -> 4/5 67, 267 -> Cualquiera o todos entre: [1, 2] / [2, 3] 435, 1 -> Cualquiera o todos entre: [1, 2, 3] / [2, 3, 4] 378100, 1878980901 -> Cualquiera o todos entre: [5, 6] / [6, 7]
Por conveniencia, aquí hay una lista de tuplas que representan cada par de entradas:
[(1234, 32), (3456, 3), (378, 1824), (1824, 378), (67, 267), (435, 1), (378100, 1878980901)]
fuente
132234
lugar de1
.Respuestas:
Casco , 16 bytes
Espera entradas como cadenas, ¡ pruébelo en línea!
Explicación
fuente
MATL , 25 bytes
Las entradas son cadenas en orden inverso. La salida está basada en 1. Si hay un empate, se muestra la posición más baja.
Pruébalo en línea! O verificar todos los casos de prueba .
Explicación
fuente
Pyth,
201311 bytesPruébalo en línea
Explicación
fuente
Jalea , 21 bytes
Pruébalo en línea!
-1 gracias al Sr. Xcoder .
Devuelve todas las posiciones posibles.
fuente
Japt ,
2221 bytesEsto se sintió demasiado tiempo mientras lo escribía, pero, mirando algunas de las otras soluciones, en realidad parece algo competitivo. Aún así, probablemente haya un poco de margen de mejora:
cNq)
en particular, me está molestando. Explicación a seguir.Toma la primera entrada como una cadena y la segunda como un entero o una cadena. El resultado está indexado a 0 y devolverá el primer índice si hay varias soluciones.
Intentalo
Explicación
fuente
PowerShell , 228 bytes
Pruébalo en línea!
(Parece largo / las sugerencias de golf son bienvenidas. También se agota el tiempo de espera en TIO para el último caso de prueba, pero el algoritmo debería funcionar para ese caso sin problemas).
PowerShell no tiene incorporados factores de factorización primarios, por lo que toma prestado el código de mi respuesta en Prime Factors Buddies . Esa es la
function
declaración de la primera línea .Tomamos información
$a,$b
y luego la configuramos$p
como una tabla hash vacía. Luego tomamos la cadena$b$a
, la convertimos en una matriz singleton con el operador de coma,
y la concatenamos con cosas . El material es una a través del bucle$a
, la inserción$b
en cada punto, por último-concatena matriz con$a$b
.En este punto, tenemos una matriz de
$b
insertada en cada punto$a
. Luego enviamos esa matriz a través de un bucle for|%{...}
. Cada iteración, insertamos en nuestra tabla hash en la posición$i++
del.count
de la cantidad de factores primosf
ese elemento en particular$_
tiene.Finalmente, hacemos
sort
la tabla hash basada envalue
s, tomamos la0
th de la misma y seleccionamos suName
(es decir, la$i
del índice). Eso queda en la tubería y la salida es implícita.fuente
05AB1E , 18 bytes
Pruébalo en línea!
fuente
05AB1E ,
2721 bytesPruébalo en línea!
Devuelve la p indexada 0 más baja .
¡Gracias a @Enigma por -6 bytes!
Explicación
fuente
ηõ¸ì¹.sRõ¸«)øεIýÒg}Wk
.Limpio ,
165... 154 bytesPruébalo en línea!
fuente
Python 2 ,
165146 bytesPruébalo en línea!
fuente
JavaScript (ES6), 120 bytes
Toma entrada como 2 cadenas. Devuelve una posición indexada 0.
Casos de prueba
Mostrar fragmento de código
fuente
J, 60 bytes
Díada explícita. Toma B a la derecha, A a la izquierda.
Salida indexada a 0.
Podría ser posible mejorar al no usar cajas.
Explicación:
fuente
Python 3, 128 bytes
0 indexado; toma cadenas como parámetros. -6 bytes gracias a Jonathan Frech.
fuente
:\n a
->:a
.Python, 122 bytes
En la práctica, esto supera la profundidad de recursión máxima predeterminada con bastante rapidez.
fuente