Page 3 sur 3
La solution
Enfin, une des solutions possibles. Attention cependant à ne pas tricher, vous devez réfléchir avant de basculer sur cette page. Il n'est pas trop tard pour faire demi-tour... car "L’apprentissage optimal est l’acquisition équilibrée de concepts, d’habiletés et d’une compétence métacognitive"
Script avec impressions intermédiaires pour comprendre
# ceci est un commentaire
# etape 1 saisir un nombre
nbre=60
print("je cherche les diviseurs de ",nbre)
# création d'une liste qui contiendra tous les diviseurs de ce nombre
# je mets 1 dans cette liste
# mon compteur sera i et i commencera par 2
diviseur=[1]
i=2
# L'idée va être de diviser le nbre par i et de voir si cette division n'a pas de reste
# cette idée est à imbriquer dans une boucle
# ----si le reste est nul, alors ajouter la valeur de i dans la liste des diviseurs
# --------et faire la division du nbre par i et mettre ce résultat dans la variable nbre
# --------puis reprendre la boucle avec cette nouvelle variable
# ----si le reste n'est pas nul alors incrémenter i de 1
while i<=nbre:
if nbre%i==0:
print (i,'est un diviseur de ',nbre)#impression pour comprendre le fonctionnement de la boulce
diviseur.append(i)
nbre=nbre/i
print(nbre)#impression pour comprendre le fonctionnement de la boulce
else:
i=i+1
print(i)#impression pour comprendre le fonctionnement de la boulce
print("Les diviseurs sont ",diviseur)
Script fonctionnel
# Saisie nbre
# etape 1 saisir un nombre
nbre=int(input("Veuillez saisir un nombre entier quelconque\nVous pouvez saisir un très grand nombre entier\nNbre="))
nbreini=nbre
# initialisation des variables
diviseur=[1]
i=2
# Test
while i<=nbre:
if nbre%i==0:
diviseur.append(i)
nbre=nbre/i
else:
i=i+1
# Impression du résultat
print("Les diviseurs de ",nbreini," sont ",diviseur)
Shell>>>
>>> %Run 'diviseur d un nombre.py'
Veuillez saisir un nombre entier quelconque
Vous pouvez saisir un très grand nombre entier
Nbre=12548120
Les diviseurs de 12548120 sont [1, 2, 2, 2, 5, 13, 59, 409]