Inspirado por esta pregunta sobre matemáticas.
Deje que la factorización prima de un número, n , ser representado como P (n) = 2 a x 3 b x 5 c x ... .
(Usando x como el símbolo de multiplicación.)
A continuación, el número de divisores de n puede ser representado como D (n) = (a + 1) x (b + 1) x (c + 1) ... .
Por lo tanto, podemos decir fácilmente que el número de divisores de 2n es D (2n) = (a + 2) x (b + 1) x (c + 1) ... ,
el número de divisores de 3n es D (3n ) = (a + 1) x (b + 2) x (c + 1) ... ,
y así sucesivamente.
Desafío:
Escriba un programa o función que use estas propiedades para calcular n , dadas ciertas entradas de divisor.
Entrada:
Un conjunto de enteros, llamémoslos w, x, y, z , con todas las siguientes definiciones:
- todas las entradas son mayores que 1 -
w, x, y, z > 1
- x y z son distintos -
x<>z
- x y z son primos -
P(x)=x
,D(x)=2
yP(z)=z
,D(z)=2
- w es el número de divisores de xn -
D(xn)=w
- y es el número de divisores de zn -
D(zn)=y
Para el problema dado en la pregunta vinculada, podría ser un ejemplo de entrada (28, 2, 30, 3)
. Esto se traduce en D(2n)=28
y D(3n)=30
, con n=864
.
Salida:
Un entero único, n , que satisface las definiciones anteriores y las restricciones de entrada. Si varios números se ajustan a las definiciones, genere el más pequeño. Si no es posible ese número entero, generar un error valor .
Ejemplos:
(w, x, y, z) => output
(28, 2, 30, 3) => 864
(4, 2, 4, 5) => 3
(12, 5, 12, 23) => 12
(14, 3, 20, 7) => 0 (or some other falsey value)
(45, 13, 60, 11) => 1872
(45, 29, 60, 53) => 4176
Reglas:
- Se aplican las reglas estándar de código de golf y las restricciones legales.
- Reglas estándar de entrada / salida aplican las .
- Los números de entrada pueden estar en cualquier orden; especifique en su respuesta qué orden está utilizando.
- Los números de entrada pueden estar en cualquier formato adecuado: separados por espacios, una matriz, función separada o argumentos de línea de comandos, etc. - usted elige.
- Del mismo modo, si la salida a STDOUT, el espacio en blanco circundante, la nueva línea final, etc., son opcionales
- El análisis de entrada y el formato de salida no son las características interesantes de este desafío.
- En aras de una complejidad sensata y desbordamientos de enteros, el número de desafío n tendrá restricciones tales que
1 < n < 100000
, es decir, no necesita preocuparse por posibles respuestas fuera de este rango.
Relacionado
fuente
Respuestas:
Jalea ,
1716 bytesEsta es una solución de fuerza bruta que prueba todos los valores posibles hasta 100,000. Pruébalo en línea!
Versión no competitiva
La última versión de Jelly tiene una corrección de errores que permite reducir el código anterior a 15 bytes .
Pruébalo en línea!
Cómo funciona
fuente