Exercice 1 :
Le code
L’analyse du code :
• Génération du nombre secret :
secret_number = random.randint(1, 100) génère un nombre aléatoire entre 1 et
100.
• Limite de tentatives :
Le nombre maximum d'essais est limité à 10 avec la variable max_attempts.
• La boucle while attempts < max_attempts: permet de demander à l'utilisateur de
faire une nouvelle tentative tant qu'il n'a pas atteint la limite de 10 essais.
• À chaque tentative, le programme indique si le nombre à deviner est plus grand ou
plus petit que la proposition.
• Si l'utilisateur devine correctement, le jeu affiche un message de félicitations avec
le nombre de tentatives. Si l'utilisateur échoue après 10 tentatives, le programme
révèle le nombre secret.
•
• Exercice 5 :
Un nombre parfait est un nombre entier positif qui est égal à la somme de ses diviseurs
propres, c'est-à-dire tous ses diviseurs excepté lui-même. Par exemple, 6 est un nombre
parfait car ses diviseurs propres (1, 2, 3) additionnés donnent 6 : 1 + 2 + 3 = 6.
Le code :
La sortie
Analyse du code
1. Entrée de l'utilisateur : Le programme commence par demander à l'utilisateur
d'entrer un nombre entier n.
2. On initialise distance_min avec une valeur suffisamment grande pour être sûre d'être
plus grande que toutes les distances possibles.
3. Calcul des diviseurs propres : Pour chaque nombre i (à partir de n et en
l'augmentant), le programme calcule la somme des diviseurs propres de i (tous les
diviseurs de i sauf i lui-même).
4. Vérification des nombres parfaits : Si la somme des diviseurs propres d'un nombre est
égale au nombre lui-même, ce nombre est un nombre parfait.
5. Trouver le nombre parfait le plus proche : Le programme compare la distance de
chaque nombre parfait trouvé par rapport à n et garde en mémoire le nombre parfait
le plus proche.
6. Affichage du résultat : Une fois qu'un nombre parfait proche a été trouvé, il est
affiché.
EXERCICE 4
Nous allons utiliser cette méthode pour calculer la racine carrée entière d'un nombre n
(c'est-à-dire le plus grand entier x tel que x * x <= n). La recherche binaire est idéale ici, car
elle permet de diviser l'intervalle de recherche en deux à chaque étape.
Etapes de la méthode :
1. Initialisation : Nous avons deux bornes, bas et haut. La borne inférieure bas
commence à 0 et la borne supérieure haut commence à n.
2. Calcul du milieu : À chaque itération, nous calculons le milieu de l'intervalle actuel
comme la moyenne des bornes bas et
3. Comparer le carré du milieu :
o Si milieu * milieu == n, nous avons trouvé la racine carrée exacte, et nous
pouvons arrêter la recherche.
o Si milieu * milieu < n, cela signifie que la racine carrée doit être plus grande,
donc on déplace la borne inférieure bas à milieu + 1.
o Si milieu * milieu > n, cela signifie que la racine carrée doit être plus petite,
donc on déplace la borne supérieure haut à milieu - 1.
4. Arrêt de la recherche : La boucle continue jusqu'à ce que l'intervalle soit réduit à une
seule valeur. c'est-à-dire jusqu'à ce que bas dépasse haut.
Le code :
La sortie :
L’analyse du code :
1. Entrée de l'utilisateur : On demande à l'utilisateur d'entrer un nombre entier positif n.
2. Initialisation des bornes : On initialise les bornes bas à 0 et haut à n. La recherche
binaire sera effectuée entre ces deux bornes.
3. Recherche binaire : La boucle while continue tant que l'intervalle [bas, haut] est
valide (bas <= haut).
On calcule le milieu de l'intervalle.
• Si le carré de milieu est égal à n, on a trouvé la racine carrée exacte et on sort de la
boucle.
• Si le carré de milieu est inférieur à n, on déplace la borne inférieure bas à milieu + 1
et on garde racine = milieu comme valeur approximative de la racine carrée.
• Si le carré de milieu est supérieur à n, on déplace la borne supérieure haut à milieu -
1.
4. Affichage du résultat : Une fois que (bas >= haut) la boucle terminée, et on affiche la
valeur de la racine carrée entière, qui est la plus grande valeur de milieu ayant un
carré inférieur ou égal à n.
EXERCICE 2
Le code est :
la sortie du code est :
L’analyse du code :
1. Entrée utilisateur :
• Le programme demande à l'utilisateur de saisir un nombre à trois chiffres (entre
100 et 999).
2. Vérification de la validité :
• Si le nombre n'est pas dans l'intervalle de 100 à 999, le programme affiche un
message d'erreur, ( le nombre doit etre un nombre à trois chiffres)
3. Extraction des chiffres :
• Les centaines (a), dizaines(b) et unités (c) sont extraites à l'aide de la division
entière (//) et du modulo (%).
4. Calcul de la somme des cubes des chiffres :
• Chaque chiffre est élevé à la puissance de 3 (car le nombre est à trois chiffres) et la
somme est calculée.
5. Comparaison :
• Si la somme des cubes est égale au nombre d'origine, le programme indique que le
nombre est un nombre Armstrong. Sinon, il affiche un message indiquant qu'il ne
l'est pas.
EXERCICE 3
Un palindrome est un nombre ou un mot qui se lit de la même manière de gauche à droite que de
droite à gauche. Par exemple, 121 est un palindromes, car leur lecture inverse est identique à la
lecture normale.
Dans cet exercice, on va vérifier si un nombre entier est un palindrome sans convertir ce nombre en
chaîne de caractères. Nous allons utiliser des opérations arithmétiques pour extraire les chiffres du
nombre et les comparer dans l'ordre inverse.
Voici le code :
La sortie est :
L’analyse du code :
1. Demande de saisie : Le programme commence par demander à l'utilisateur d'entrer
un nombre entier.
2. Initialisation :
o nombre_original garde la valeur initiale du nombre pour pouvoir la comparer
à l'inverse à la fin.
o inverse est initialisé à 0, et servira à construire le nombre inversé.
3. Boucle pour extraire et inverser les chiffres :
• Si la nombre entré est supérieur à 0, les itération de la boucle sera
exécutées. Sinon,Le programme affiche un message indique que le
nombre n’est Amstrong .
• À chaque itération de la boucle, le dernier chiffre du nombre est extrait à
l'aide de nombre % 10 (l'opération modulo).
• Ce chiffre est ajouté à inverse, multiplié par 10 pour décaler les chiffres
précédemment ajoutés (comme dans une construction classique d'un
nombre entier).
• Ensuite, le dernier chiffre est retiré de nombre en effectuant une division
entière par 10 (nombre // 10).
4. Comparaison
• À la fin, le nombre d'origine est comparé à son inverse. Si les deux sont
identiques, alors le nombre est un palindrome.