Desafio
Existem muitos números que podem ser expressos como a diferença de dois quadrados, ou a diferença de dois cubos, ou talvez potências ainda mais altas. Falando em quadrados, existem várias maneiras de escrever um número, digamos 75, como a diferença de 2 quadrados. Você pode escrever:
75 = (10)^2 - (5)^2
= (14)^2 - (11)^2
= (38)^2 - (37)^2
Então, vamos falar sobre o desafio. Primeiro, o usuário digita um número e, em seguida, ele insere um valor para n. Você precisa exibir todas as maneiras pelas quais esse número pode ser escrito na forma de aⁿ - bⁿ.
Entrada e saída
A entrada será o número e o valor de n. Sua saída deve ter todos esses pares de 'a' e 'b', de modo que a condição acima indicada seja atendida. O primeiro número no par deve ser maior que o segundo. Observe que a, b, n e o número de entrada são números inteiros positivos e n> 1 .
Exemplos
50, 2 -> (none)
32, 2 -> (9,7), (6, 2)
7, 3 -> (2,1)
665, 6 -> (3, 2)
81, 4 -> (none)
Pontuação
Isso é código-golfe , então o código mais curto vence!
fonte
==
no UniHaskell é um pouco confuso, pois denota congruência na matemática.05AB1E , 9 bytes
Muito ineficiente para valores de entrada maiores.
Experimente online!
Explicação
fonte
MATL , 11 bytes
Experimente online! Ou verifique todos os casos de teste .
Explicação
fonte
APL (Dyalog) , 21 bytes
Experimente online!
Argumento à esquerda é
n
.fonte
Python 2 , 65 bytes
Experimente online!
fonte
Gelatina , 10 bytes
Uma captura de programa completa
i
en
que imprime os pares de[b,a]
com uma saída vazia quando não há nenhuma.Experimente online!
Quão?
fonte
JavaScript (ES7), 64 bytes
Função recursiva que recebe entradas na sintaxe de currying
(n)(p)
. Retorna uma lista separada por espaços de pares de números inteiros ou uma sequência vazia, se não houver solução. Usa o mesmo algoritmo da resposta Python do user202729 .Ou 60 bytes com matrizes encapsuladas terminadas em 0:
Isso produziria
[ 9, 7, [ 6, 2, 0 ] ]
para f (32) (2) .Casos de teste
Mostrar snippet de código
fonte
Pitão , 14 bytes
Experimente aqui! , Alternativa!
fonte
Python 3 , 71 bytes
Obrigado Mr.Xcoder por salvar alguns bytes!
Experimente online!
Python 3 , 69 bytes
Experimente online!
O uso da abordagem de força bruta x ^ 2 de totallyhuman realmente salva bytes.
fonte
Oitava , 80 bytes
Experimente online!
fonte
Perl 6 , 45 bytes
Experimente online!
fonte