Exercice 58
- Écrire un programme en Python qui permet de lister les diviseurs d’un entier N donné.
- 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
Post Views: 3 887
2 thoughts on “Solution Exercice 58: obtenir les diviseurs d'un entier graphiquement en Python Tkinter”