Défi
Il existe de nombreux nombres qui peuvent être exprimés comme la différence de deux carrés, ou comme la différence de deux cubes, ou peut-être même des puissances supérieures. En parlant de carrés, il existe différentes façons d'écrire un nombre, disons 75, comme la différence de 2 carrés. Tu peux écrire:
75 = (10)^2 - (5)^2
= (14)^2 - (11)^2
= (38)^2 - (37)^2
Parlons donc du défi. Tout d'abord, l'utilisateur entre un nombre puis il saisit une valeur pour n. Vous devez afficher toutes les façons dont ce nombre peut être écrit sous la forme aⁿ - bⁿ.
Entrée et sortie
L'entrée sera le nombre et la valeur de n. Votre sortie doit avoir toutes ces paires de «a» et de «b» telles que la condition susmentionnée est remplie. Le premier nombre de la paire doit être plus grand que le second. Veuillez noter que a, b, n et le numéro d'entrée sont tous des entiers positifs et n> 1 .
Exemples
50, 2 -> (none)
32, 2 -> (9,7), (6, 2)
7, 3 -> (2,1)
665, 6 -> (3, 2)
81, 4 -> (none)
Notation
C'est le code-golf , donc le code le plus court gagne!
la source
==
dans UniHaskell est quelque peu déroutant, car il dénote la congruence en mathématiques.05AB1E , 9 octets
Très inefficace pour des valeurs d'entrée plus importantes.
Essayez-le en ligne!
Explication
la source
MATL , 11 octets
Essayez-le en ligne! Ou vérifiez tous les cas de test .
Explication
la source
APL (Dyalog) , 21 octets
Essayez-le en ligne!
L'argument de gauche est
n
.la source
Python 2 , 65 octets
Essayez-le en ligne!
la source
Gelée , 10 octets
Une prise de programme complète
i
, etn
qui affiche les paires[b,a]
avec une sortie vide quand il n'y en a pas.Essayez-le en ligne!
Comment?
la source
JavaScript (ES7), 64 octets
Une fonction récursive prenant une entrée dans la syntaxe de curry
(n)(p)
. Renvoie une liste de paires d'entiers séparées par des espaces ou une chaîne vide s'il n'existe aucune solution. Utilise le même algorithme que la réponse Python de user202729 .Ou 60 octets avec des tableaux encapsulés terminés par 0:
Cela produirait
[ 9, 7, [ 6, 2, 0 ] ]
pour f (32) (2) .Cas de test
Afficher l'extrait de code
la source
Pyth , 14 octets
Essayez-le ici! , Alternative!
la source
Python 3 , 71 octets
Merci Mr.Xcoder pour avoir sauvé quelques octets!
Essayez-le en ligne!
Python 3 , 69 octets
Essayez-le en ligne!
L'approche par force brute x ^ 2 de totallyhuman permet en fait d'économiser des octets.
la source
Octave , 80 octets
Essayez-le en ligne!
la source
Perl 6 , 45 octets
Essayez-le en ligne!
la source