Un nombre Munchausen dans la base , également connu sous le nom d' invariant parfait de chiffre à chiffre ou PDDI est un type particulier d'entier positif où la somme de ses chiffres de base élevés pour lui-même est égale au nombre lui-même. Ils portent le nom du fictif Baron Munchausen , qui s'est apparemment hissé par sa propre queue de cheval pour se sauver de la noyade. Un concept connexe est celui des nombres narcissiques .
Par exemple, est trivialement un nombre Munchausen dans chaque base car . De plus, chaque entier positif est par définition un nombre Munchausen de base 1.
Plus intéressant, est un nombre Munchausen de base 10 car , et en fait est le seul autre nombre Munchausen de base 10 .
Une liste partielle des numéros de Munchausen dans chaque base jusqu'à 35 peut être trouvée sur l'OEIS sous la séquence A166623 .
Étant donné un entier positif , déterminez s'il s'agit d'un nombre de Munchausen dans n'importe quelle base .
Règles
- Les règles d'E / S par défaut s'appliquent, donc:
- Un programme complet ou des fonctions sont acceptables.
- L'entrée peut provenir de STDIN, comme argument de fonction, et la sortie peut être vers STDOUT, comme valeur de retour de fonction, etc.
- Les failles par défaut s'appliquent.
- La sortie doit être l'un des deux résultats distincts et cohérents. Donc,
TRUE
c'est bien pour la vérité etFALSE
c'est bien pour la fausseté, mais vous pouvez inverser cela ou revenirNone
pour la vérité et1
pour la fausseté ou autre chose. Veuillez spécifier les résultats sélectionnés dans votre réponse. - Votre réponse doit fonctionner au moins théoriquement pour tout entier positif.
- Les nombres Munchausen utilisent la convention , donc est un nombre Munchausen de base 2 comme . Votre code doit suivre cette convention.
- Les explications sont fortement encouragées, même si les soumissions utiliseront très probablement la méthode de recherche par force brute.
- L'utilisation de langues ésotériques vous rapporte des points brownie car Munchausen était apparemment une personne étrange.
Cas de test
Truthy
1 (all bases)
2 (base 2)
5 (base 3)
28 (base 9 and base 25)
29 (base 4)
55 (base 4)
3435 (base 10)
923362 (base 9)
260 (base 128)
257 (base 64 and base 253)
Falsy
3
4
591912
3163
17
Il s'agit de code-golf , donc la réponse la plus courte dans chaque langue (en octets) l'emporte!
la source
determine if it's a Munchausen number in any base b≥2.
Réponses:
05AB1E , 7 octets
Essayez-le en ligne!
Les cas de test plus importants expireront sur TIO.
Explication
la source
1^1
est 1 .Gelée , 8 octets
Cède
0
pour Munchausen et1
autrement.Essayez-le en ligne!
Ou voyez les cinq cents premiers entiers positifs divisés en
[[Munchausen], [non-Munchausen]]
.Comment?
Alternative pour
1
Munchausen et0
autre:la source
1
c'était Munchausen.J ,
332827 octetsEssayez-le en ligne!
e.
est l'entrée un élément de ...1#.
la somme de chaque rangée de ...i.@>: ... ]
0..input et l'entrée elle-même, passés comme arguments gauche et droit à ...^~@(#.inv)"0
convertissez l'argument droit (entrée) en chaque base de l'argument gauche et augmentez chaque résultat élément par élément^~@
.::1
enfin, cela est nécessaire car vous ne pouvez pas convertir uniquement en base 1, donc il y a des erreurs. dans ce cas, nous renvoyons simplement 1, qui ne correspondra à aucun nombre sauf 1, ce que nous voulonsla source
R ,
7269 octets-1 octet grâce à digEmAll
Essayez-le en ligne!
Sorties
TRUE
pour numéros Munchausen etFALSE
autres.x%/%b^(0:log(x,b))%%b)
convertitx
en baseb
, et la boucle for fait le reste du travail (réaffectationF
, qui estFALSE
par défaut).Nous devons autoriser la base
b
à aller jusqu'aux+1
lieu dex
gérer le boîtierx=1
.la source
+
avec|
et enlever!
, puis j'ai réalisé que j'ai écrit 71 mais mon code était en fait 70: DJapt , 13 octets
Un octet enregistré grâce à @Shaggy
Essayez-le
la source
ÃÃøU
par<newline>øN
.N
, je ne l'ai jamais utilisé auparavant!Perl 6 , 51 octets
Essayez-le en ligne!
Explication:
la source
Rubis , 50 octets
TIO a expiré le 591912. En quelque sorte, Perl dépasse d'un octet ... (au moment de la rédaction)
Essayez-le en ligne!
la source
JavaScript (ES7), 60 octets
Renvoie une valeur booléenne.
Essayez-le en ligne!
Commenté
la source
APL (dzaima / APL) ,
2313 octetsEssayez-le en ligne!
Grâce à Adám, ngn et dzaima, nous avons réussi à réduire de 10 octets cette réponse en utilisant dzaima / APL.
Fonction tacite de préfixe. Les nombres Munchausen renvoient 1, sinon 0.
Comment
la source
Wolfram Language (Mathematica) , 65 octets
Essayez-le en ligne!
-4 octets de @attinat
la source
Fusain , 17 octets
Essayez-le en ligne! Le lien est vers la version détaillée du code. Ma tentative de 16 octets n'a pas fonctionné, mais cela pourrait être un bug dans Charcoal, alors surveillez cet espace. Sorties
-
sauf si le nombre est un nombre Munchausen. Explication:la source
C # (Visual C # Interactive Compiler) , 99 octets
Essayez-le en ligne!
la source
Haskell, 61 octets
Résultats
True
pour Munchausen etFalse
autrement.Essayez-le en ligne!
la source
C (gcc)
-lm
,7975 octetsEssayez-le en ligne!
Renvoie les
0
numéros Munchausen, et1
autrement.également 75 octets
Essayez-le en ligne!
la source
Python 2 ,
8381 octetsEssayez-le en ligne!
Retourne
1
pour véridique et0
pour falsey. En raison de la récursivité, ne peut pratiquement pas être traité591912
, mais cela fonctionne dans l'abstrait.la source
Perl 6 ,
6665 octetsEssayez-le en ligne!
la source
JavaScript (ES6), 88 octets
la source
Icône , 109 octets
Essayez-le en ligne!
Temps mort pour
591912
. Icon traite0^0
comme un débordement et c'est pourquoi j'ai besoin d'une vérification supplémentaire pour zéro.la source
Stax , 15 octets
Exécuter et déboguer
Prend très longtemps pour les plus grands cas de test.
Explication:
la source