Exercice 26
1) Ecrire un algorithm en Python sous forme de fonction qui prend un nombre entier n en entrée et vérifie s'il est un nombre de Leyland. (Un nombre entier n est dit de Leyland s'il peut être exprimé sous la forme n = pq + qp
2) Illustrer le résultat sur une fenêtre Tkinter comme le montre la figure ci-dessous:
Solution
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# Importer les modules nécessaires de Tkinter import tkinter as tk from tkinter import messagebox # Fonction pour vérifier si un nombre est un nombre de Leyland def est_nombre_leyland(nombre): # Un nombre inférieur ou égal à 1 n'est pas un nombre de Leyland if nombre <= 1: return False # Recherche de paires (x, y) pour vérifier l'équation x^y + y^x == nombre for x in range(2, int(nombre**0.5) + 1): for y in range(x, int(nombre/x) + 1): if x**y + y**x == nombre: return True # Si aucune paire n'est trouvée, le nombre n'est pas un nombre de Leyland return False # Fonction pour vérifier et afficher le résultat sur une boîte de message Tkinter def verifier_nombre_leyland(): try: # Récupérer le nombre entré par l'utilisateur depuis le champ de saisie nombre_entier = int(entry.get()) # Vérifier si le nombre est un nombre de Leyland if est_nombre_leyland(nombre_entier): # Afficher un message d'information si le nombre est un nombre de Leyland messagebox.showinfo("Résultat", f"{nombre_entier} est un nombre de Leyland.") else: # Afficher un message d'information si le nombre n'est pas un nombre de Leyland messagebox.showinfo("Résultat", f"{nombre_entier} n'est pas un nombre de Leyland.") except ValueError: # Afficher un message d'erreur si une exception ValueError est levée (entrée non valide) messagebox.showerror("Erreur", "Veuillez entrer un nombre entier valide.") # Création de la fenêtre principale Tkinter fenetre = tk.Tk() fenetre.title("Vérification des nombres de Leyland") # Libellé pour indiquer à l'utilisateur d'entrer un nombre entier label = tk.Label(fenetre, text="Entrez un nombre entier :") label.pack(pady=10) # Champ de saisie pour que l'utilisateur entre le nombre entry = tk.Entry(fenetre) entry.pack(pady=10) # Bouton de vérification qui appelle la fonction verifier_nombre_leyland bouton_verifier = tk.Button(fenetre, text="Vérifier", command=verifier_nombre_leyland) bouton_verifier.pack(pady=10) # Lancer la boucle principale de l'interface graphique Tkinter fenetre.mainloop() |
Younes Derfoufi
CRMEF OUJDA