Reto
Hay muchos números que pueden expresarse como la diferencia de dos cuadrados, o como la diferencia de dos cubos, o tal vez incluso potencias más altas. Hablando de cuadrados, hay varias formas de escribir un número, digamos 75, como la diferencia de 2 cuadrados. Puedes escribir:
75 = (10)^2 - (5)^2
= (14)^2 - (11)^2
= (38)^2 - (37)^2
Entonces hablemos del desafío. En primer lugar, el usuario ingresa un número y luego ingresa un valor para n. Debe mostrar todas las formas en que se puede escribir ese número en forma de aⁿ - bⁿ.
Entrada y salida
La entrada será el número y el valor de n. Su salida tendrá todos esos pares de 'a' y 'b' de manera que se cumpla la condición mencionada anteriormente. El primer número del par debe ser mayor que el segundo. Tenga en cuenta que a, b, n y el número de entrada son todos enteros positivos yn> 1 .
Ejemplos
50, 2 -> (none)
32, 2 -> (9,7), (6, 2)
7, 3 -> (2,1)
665, 6 -> (3, 2)
81, 4 -> (none)
Tanteo
Este es el código de golf , por lo que gana el código más corto.
fuente
==
en UniHaskell es algo confuso, ya que denota congruencia en matemáticas.05AB1E , 9 bytes
Muy ineficiente para valores de entrada más grandes.
Pruébalo en línea!
Explicación
fuente
MATL , 11 bytes
Pruébalo en línea! O verificar todos los casos de prueba .
Explicación
fuente
APL (Dyalog) , 21 bytes
Pruébalo en línea!
El argumento izquierdo es
n
.fuente
Python 2 , 65 bytes
Pruébalo en línea!
fuente
Jalea , 10 bytes
Un programa completo que toma
i
, yn
que imprime los pares[b,a]
con una salida vacía cuando no hay ninguno.Pruébalo en línea!
¿Cómo?
fuente
JavaScript (ES7), 64 bytes
Una función recursiva que toma datos en la sintaxis de curry
(n)(p)
. Devuelve una lista de pares de enteros separados por espacios, o una cadena vacía si no existe una solución. Utiliza el mismo algoritmo que la respuesta Python de user202729 .O 60 bytes con matrices encapsuladas terminadas en 0:
Esto daría salida
[ 9, 7, [ 6, 2, 0 ] ]
para f (32) (2) .Casos de prueba
Mostrar fragmento de código
fuente
Pyth , 14 bytes
Pruébalo aquí! , Alternativa!
fuente
Python 3 , 71 bytes
¡Gracias Mr.Xcoder por guardar algunos bytes!
Pruébalo en línea!
Python 3 , 69 bytes
Pruébalo en línea!
Usar el enfoque de fuerza bruta x ^ 2 de humanhuman realmente ahorra bytes.
fuente
Octava , 80 bytes
Pruébalo en línea!
fuente
Perl 6 , 45 bytes
Pruébalo en línea!
fuente