Contexte
Le nombre 1729 est le nombre Hardy-Ramanujan. Une propriété étonnante en a été découverte par S. Ramanujan (qui est largement considéré comme le plus grand mathématicien indien 1 ), lorsque GH Hardy lui a rendu visite dans un hôpital. Dans les propres mots de Hardy:
Je me souviens être allé le voir une fois quand il était malade à Putney. J'étais monté dans la cabine de taxi numéro 1729 et j'ai remarqué que le numéro me semblait plutôt terne et que j'espérais que ce n'était pas de mauvais augure. "Non," répondit-il, "c'est un nombre très intéressant; c'est le plus petit nombre exprimable comme la somme de deux cubes de deux manières différentes."
En plus de cela, il a de nombreuses autres propriétés étonnantes. L'une de ces propriétés est qu'il s'agit d'un nombre Harshad, c'est-à-dire que la somme de ses chiffres (1 + 7 + 2 + 9 = 19) en est un facteur. Cela aussi, spécial. Comme l'a montré Masahiko Fujiwara, 1729 est un entier positif qui, lorsque ses chiffres sont additionnés, produit une somme qui, multipliée par son inversion, donne le nombre d'origine:
1 + 7 + 2 + 9 = 19
19 × 91 = 1729
Un entier positif ayant un tel bien est ce que je définirais comme Hardy-Ramanujan- de Harshad Nombre, dans le but de ce post. (Il pourrait y avoir un terme technique pour cela, mais je ne l'ai pas trouvé, à moins qu'il ne soit membre de A110921 )
La tâche
Etant donné un entier positif n
comme entrée, la sortie d' une valeur de truthy ou Falsey sur la base de si l'entrée n
est une Hardy-Ramanujan- de Harshad Nombre. Sortie véridique, si elle l'est. Sinon, sortez falsey.
Notez que seulement quatre Hardy-Ramanujan- ish nombre harshad existent ( 1
, 81
, 1458
et 1729
), et vous pouvez écrire du code qui vérifie l' équivalence avec eux. Mais je ne pense pas que ce sera amusant.
Contribution
Votre programme doit prendre un entier positif (un nombre naturel, en d'autres termes). Il peut le prendre de n'importe quelle manière sauf en supposant qu'il soit présent dans une variable. La lecture à partir de la fenêtre modale, de la zone de saisie, de la ligne de commande, du fichier, etc. est autorisée. Prendre l'entrée comme argument de fonction est également autorisé.
Production
Votre programme doit afficher une valeur true ou falsey. Ils n'ont pas besoin d'être cohérents. Votre programme peut sortir de n'importe quelle façon sauf écrire la sortie dans une variable. L'écriture sur l'écran, la ligne de commande, le fichier, etc. est autorisée. La sortie avec fonction return
est également autorisée.
Règles supplémentaires
Vous ne devez pas utiliser un intégré pour accomplir la tâche (je me demande si n'importe quelle langue aura un tel intégré, mais Mathematica ... )
Les échappatoires standard s'appliquent.
Cas de test
Input Output
1 Truthy (because 1 × 1 (reverse of 1) = 1)
2 Falsey
3 Falsey
4 Falsey
5 Falsey
81 Truthy (because 9 (8 + 1) × 9 (reverse of 9) = 81)
1458 Truthy (because 18 (1 + 4 + 5 + 8) × 81 (reverse of 18) = 1458)
1729 Truthy (because 19 (1 + 7 + 2 + 9) × 91 (reverse of 19) = 1729)
1730 Falsey
2017 Falsey
Critère gagnant
C'est du code-golf , donc le code le plus court en octets gagne!
1 Chaque année, le 22 e Décembre, l'anniversaire de Srinivasa Ramanujan, la Journée nationale des mathématiques est observée en Inde. Ses collègues, ceux de Cambridge, le comparaient à Jacobi, Euler et même Newton. En plus d'être si grand, il n'avait presque aucune formation formelle en mathématiques pures , mais il a quand même apporté d'importantes contributions à l'analyse mathématique , à la théorie des nombres , aux séries infinies et aux fractions continues . Malheureusement, il est décédé à un âge précoce de 32 ans avec des milliers de découvertes mathématiques à l'esprit. Un film a également été réalisé sur lui, basé sur sa biographie ,L'homme qui connaissait l'infini .
Réponses:
Neim , 5 octets
Explication:
Essayez!
la source
ArnoldC, 888 octets
Je sais, je vérifie juste l'égalité, mais cela ne devrait pas être la partie amusante du programme.
Bonne lecture. :)
Ajout de quelques nouvelles lignes pour une meilleure lisibilité:
Essayez-le en ligne
la source
Assemblage x86,
55353331 octets:Suppose un ABI où la valeur de retour est en EAX et les paramètres sont poussés sur la pile ... donc presque tous.
la source
Brachylog , 8 octets
Essayez-le en ligne!
la source
Haskell ,
5655 octetsEssayez-le en ligne!
Sans point: (56 octets)
Essayez-le en ligne!
Ennuyeux: (24 octets)
Essayez-le en ligne!
la source
JavaScript ES6,
5957 octetsEssayez-le en ligne!
Se divise fondamentalement en tableau de chiffres, et se joint à
+
et évalue cette expression pour sommer essentiellement les chiffres.string*string
convertira automatiquement les chaînes en pouces. Prend l'entrée sous forme de chaînela source
Mathematica, 42 octets
la source
Rubis, 69 octets
Essayez d'abord, avec un entier comme entrée:
Deuxième essai, avec une chaîne en entrée:
la source
.split('')
peut être fait.chars
Lot, 164 octets
Imprime 1 en cas de succès, aucune sortie en cas d'échec.
la source
JavaScript (ES6), 72 octets
Il s'agit d'une soumission ES6 valide. Ajoutez
f=
au début et invoquez commef(arg)
.Extrait de test:
la source
Kotlin,
111108 octetsEssayez-le en ligne!
Comme c'est généralement le cas pour les solutions JVM compilées statiquement, beaucoup d'octets sont perdus uniquement sur la déclaration de la fonction principale et l'appel à print (). La fonction de la fonction est de 60 octets, ce qui n'est pas mal du tout pour un langage à usage général typé comme Kotlin.
Kotlin, solution ennuyeuse, 69 octets
Essayez-le en ligne!
la source
05AB1E , 5 octets
Essayez-le en ligne!
la source
DSODR*Q
était ce que j'avais avant de regarder.D
.Python 2 , 55 octets
Essayez-le en ligne!
Explication
Une
eval()
solution est unpeuplus longue de 2 octets ...Solution alternative
(non valide?),4229 octetsCette solution vérifie l'égalité par rapport à tous les nombres.
Essayez-le en ligne!
la source
[1,81,1458,1729].__contains__
Cheddar , 60 octets
Essayez-le en ligne!
la source
NewStack , 16 octets
La répartition:
Utiliser 1729 comme exemple
N'imprime rien si faux et l'entrée d'origine si vrai.
la source
¹
, la pile se compose[1]
. Et puisque nous avons définif
ouf(x)
pour égaler votre entrée, multiplier chaque élément de la pile par la fonctionf
remplace essentiellement le1
par notre entrée. (Parce que[1] * f(x)
=[f]
)MATL, 11 bytes
Try it online!
t
- take input and duplicate itV!U
- split it into individual digitss
- sum those digitst
- duplicate that sumVP
- transformez cela en chaîne, retournez-le de gauche à droiteU
- transformer cela en un nombre*
- multiplier les deux dernières valeurs (la somme des chiffres et sa version inversée de gauche à droite)=
- check if this is equal to the original input (which is the only other value in stack)la source
Japt, 8 bytes
Run it online
la source
Jelly, 8 bytes
Try it online!
la source
DS×Ṛ$Ḍ=
saves a byte.Perl 6, 30 bytes
la source
PHP, 52 bytes
Try it online!
PHP, 36 bytes
Try it online!
la source
APL (Dyalog), 18 bytes
Try it online!
la source
Pari/GP,
5652 bytesTry it online!
la source
MathGolf, 5 bytes
Try it online!
Pretty much the same as the Neim solution byte for byte.
la source