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 .