Solution Exercice 58: obtenir les diviseurs d'un entier graphiquement en Python Tkinter

Exercice 58

  1. Écrire un programme en Python qui permet de lister les diviseurs d’un entier N donné.
  2. Créer un programme en Python qui propose à l’utilisateur une fenêtre Tkinter lui demandant de saisir un entier N et lui renvoie tous les diviseurs de N.

Solution

1. Liste des diviseurs d'un entier



# coding: utf-8
def listeDiviseurs(N):
    # initialisation de la liste des diviseurs à vide L = []
    L = []
    # On parcourt les entiers: 1  2  3 ...  N
    for i in range (1, N+1):
        # on test si l'entier i est un diviseur de N et on l'ajoute à La liste des diviseurs L
        if N%i == 0 :
            L.append(i)
    return L
# On test l'algorithme
print("La liste des diviseurs de 18 est : " ,listeDiviseurs(18))
# Affiche: La liste des diviseurs de 18 est :  [1, 2, 3, 6, 9, 18]

2. La liste des diviseurs d'un entier sous forme d'application graphique

# -*- coding: utf-8 -*-
from tkinter import *
 
# méthode qui réalise l'action           
def action():
    
    # récuperation de la valeur du champ de saisie
    N = int(entryNombre1.get())
    lblDiviseurs['text'] = 'Diviseurs de N   : '
    
    # chercher les diviseur s de n en parcourant tous les entiers de 1 à n
    for i in range(1,N+1):
        if(N%i == 0):
            lblDiviseurs['text']=lblDiviseurs['text'] + "   "+ str(i) + "   "

# Création de la fenêtre principale    
fen = Tk()
fen.geometry("400x175")

# champ de saisie de l'entier N avec le label associé
lblnombre1 = Label(fen, text = "Entrer la valeur de N")
lblnombre1.place( x = 10 , y = 20)
entryNombre1 = Entry(fen) 
entryNombre1.place(x =200 , y = 20)

# Label qui récupère le résultat
lblDiviseurs = Label(fen, text = "Les diviseurs de N :")
lblDiviseurs.place( x = 10 , y = 50)

# bouton de validation
Valider = Button(fen , text = "Valider l'opération" , width=20 , command = action)
Valider.place( x =200 , y = 90)

fen.mainloop()

 

Younes Derfoufi
CRMEF OUJDA

2 thoughts on “Solution Exercice 58: obtenir les diviseurs d'un entier graphiquement en Python Tkinter

Leave a Reply