Situation & Simulateur interactif (Analyse d'un nombre)
Dans le cadre de l'étude des nombres entiers (exploitées notamment en cryptographie), on souhaite
concevoir un programme automatisé d'analyse d'un entier positif N.
Ce programme doit réaliser les trois opérations suivantes :
-
Contrôle de saisie sécurisé : Saisir un entier
Nstrictement compris entre 2 et 100 (2 < N < 100). -
Recherche des diviseurs stricts & test du nombre parfait :
Calculer la somme de tous les diviseurs stricts de
N(tous les entierside1àN div 2qui divisentN). Un nombre est dit parfait s'il est égal à la somme de ses diviseurs stricts (exemples : 6 car1 + 2 + 3 = 6et 28 car1 + 2 + 4 + 7 + 14 = 28). -
Divisions successives par 2 (Réduction binaire) :
Compter le nombre de divisions entières successives par 2 que le nombre
Npuisse subir.
AnalyseNombre qui
réalise la saisie contrôlée de N, détermine si N est un nombre parfait et
calcule le nombre de divisions entières successives par 2.
Contrôle de saisie
Boucle : Répéter / Jusqu'à
Répéter
...
Jusqu'à (2 < n < 100)
Somme des diviseurs
Boucle : Pour ... Faire / Fin Pour
Pour i de 1 à n div 2 Faire
...
Fin Pour
n div 2 itérations connues d'avance.
Divisions par 2
Boucle : Tant Que ... Faire / Fin Tant Que
Tant Que (temp Mod 2 = 0) Faire
...
Fin Tant Que
nb_div2) :
{{ nbDiv2 }}
Questions orales :
Structures itératives & Normes officielles
| Structure | Algorithmique (Norme) | Python (Conventions 2024-2025) |
|---|---|---|
|
Boucle complète Nombre d'itérations connu à l'avance |
|
Borne F+1 exclue en Python
|
|
Boucle préalable Test avant d'entrer (0 à N fois) |
|
Condition de maintien (True)
|
|
Boucle post-test Exécutée au moins une fois (≥ 1) |
|
Négation de la condition d'arrêt
|
Consignes officielles :
- Interdiction absolue du
break: La sortie anticipée d'une boucle parbreakest strictement prohibée. - Intégrité du compteur
Pour: La variable de contrôle ne doit jamais être modifiée manuellement dans le bloc. - Division entière : Utiliser exclusivement l'opérateur euclidien
//pour préserver le typeint.
Pour décrémenter, la borne finale passée à range doit être F - 1.
# Décompte décroissant de 10 à 0
for i in range(10, -1, -2):
print(i)
Jusqu'à indique l'arrêt. En Python, while évalue le maintien.
# Répéter ... Jusqu'à (n > 2)
n = int(input("N = "))
while not (n > 2): # ou while n <= 2:
n = int(input("N = "))
La variable de condition doit impérativement évoluer vers l'arrêt à chaque tour.
while temp % 2 == 0:
temp = temp // 2 # Vers l'arrêt
nb_div2 = nb_div2 + 1
Bilan & Auto-évaluation (Questions flash & Quiz)
Questions Flash de clôture :
Quiz d'auto-évaluation
Séance 3 terminée !
Entraînez-vous sur les séries d'exercices itératifs pour consolider vos acquis.