Vous voulez vous entraîner un peu avant c0d1ngUP ?
Voici le deuxième volet de la phase d’entraînement !
Les défis à base d’arithmétique sont parmi les plus accessibles car ils ne nécessite généralement rien de plus qu’un moyen de calcul. Pas besoin de module supplémentaire, de bibliothèque etc.
Parfois, il faut tout de même utiliser un langage capable de manipuler de très grands nombres entier, ce qui est souvent le cas des langages interprétés modernes.
Pour résoudre ce défi, il suffit de tester tous les nombres à partir de 64224
, de
mettre ce nombre au carré, et d’analyser son écriture.
L’écriture d’un nombre peut être obtenue en réalisant des divisions par 10 successives pour extraire chaque chiffre, ou en le convertissant en chaîne de caractères. Ensuite, il reste à vérifier que dans
ce carré, on utilise uniquement les caractères demandés : 1
, 2
, 4
, 6
et 7
.
Pour faire ça, la disponibilité d’une structure de données adaptée simplifie le travail (set()
en Python). Mais au peut aussi comptabiliser le nombre d’apparitions de chaque caractère dans un tableau de 10 cases, et vérifier que toutes les cases sont à 0
sauf celles correspondant à 1
, 2
, 4
, 6
et 7
.