Index de l'article

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]