Introduction et crédit
Nous connaissons et aimons tous nos règles géniales pour tester si un nombre est divisible par 11 ou 3, ce qui est juste une somme intelligente sur les chiffres du nombre. Maintenant, ce défi porte cela à un nouveau niveau, en vous obligeant à calculer la somme des chiffres, puis à vérifier si le résultat est un carré entier parfait, aucune des opérations ne pouvant généralement être effectuée très rapidement. Comme cette propriété est également très difficile à voir lorsque l'on regarde un nombre, nous voulons que cela soit fait pour des listes entières de nombres afin que nous puissions économiser du travail humain. C'est donc votre défi maintenant!
C'était une affectation à mon cours universitaire de programmation fonctionnelle. Ce devoir est maintenant fermé et a été discuté en classe et j'ai la permission de mon professeur de le poster ici (j'ai demandé explicitement).
spécification
Contribution
Votre entrée est une liste d'entiers non négatifs, dans n'importe quel format d'E / S standard.
Vous pouvez choisir le format de liste selon votre langue
Sortie
La sortie est une liste d'entiers, dans n'importe quel format d'E / S standard.
Que faire?
Filtrez chaque entier de la liste d'entrée pour lequel la somme des chiffres n'est pas un carré (d'un entier).
L'ordre des éléments ne peut pas être modifié, par exemple, si vous obtenez, [1,5,9]
vous ne pouvez pas revenir[9,1]
Boîtes de coin potentielles
0 est un entier non négatif et donc une entrée valide et 0 est également une racine entière valide, par exemple 0 compte comme un carré entier.
La liste vide est également une entrée et une sortie valides.
Qui gagne?
Il s'agit de code-golf, donc la réponse la plus courte en octets l'emporte!
Les règles standard s'appliquent bien sûr.
Cas de test
[1,4,9,16,25,1111] -> [1,4,9,1111]
[1431,2,0,22,999999999] -> [1431,0,22,999999999]
[22228,4,113125,22345] -> [22228,4,22345]
[] -> []
[421337,99,123456789,1133557799] -> []
Exemple pas à pas
Example input: [1337,4444]
Handling first number:
Sum of the digits of 1337: 1+3+3+7=14
14 is not an integer square, thus will be dropped!
Handling second number:
Sum of the digits of 4444: 4+4+4+4=16
16 is an integer square because 4*4=16, can get into the output list!
Example output: [4444]