Nombres magiques

Contexte

Ici un nombre n sera magique, si \(n \times 9\) est un palindrome de \(n\).

Environnement de travail

Pour cet exercice, vous devez utiliser en priorité le fichier squelette ex05-magique.py. IMPORTANT : Enregistrez le avec Right Click + Save Link As... pour conserver l’encodage.

Selon la convention de structuration des modules, ce fichier sera structuré en quatre parties :

  1. Imports et définition des variables globales est vide car on ne fait pas appel à des packages externes, ni à des variables globales ;
  2. Définition des fonctions secondaires contient les différentes fonctions à écrire ;
  3. Définition de la fonction principale contient l’appel aux fonctions secondaires;
  4. Appel protégé de la fonction principale.

Objectifs

Écrire la fonction is_magic() :

La vérification du palindrome est beaucoup (!) plus simple lorsque l’on manipule des chaînes de caractères.

Vérifier le bon fonctionnement de la fonction en effectuant un appel depuis main() et en affichant la valeur de retour (les doctests de la fonction donnent des exemples d’appel et les valeurs de retour correspondantes).

Doctests

Une fois la fonction opérationnelle pour quelques arguments, ET SEULEMENT DANS CE CAS, lancer les doctests dans un terminal:

$ python -m doctest ex05_magic.py -v

La totalité des doctests doivent réussir.

Application

Utilisez la fonction is_magic() pour rechercher l’ensemble des nombres magiques entre 1 et 100000.

Ecrire la fonction next_magic :