Vous êtes sur la page 1sur 2

TP 2 - Structures fondamentales

Responsable : Dr Ousmane KHOUMA

Année Académique 2020 - 2021

Université Amadou Mahtar MBOW (UAM)


Licence 1 ESTI & ESMGE

Exercice 1 :
1. En 1937, un mathématicien allemand nommé Lothar Collatz a formulé une hypothèse intri-
gante (elle reste à prouver) qui peut être décrite de la manière suivante :
a) Prenez n'importe quel nombre entier non négatif et non nul et nommez-le N0 ;
b) S'il est pair, évaluez un nouveau N0 comme N0 ÷ 2 (N0 = N0//2) ;
c) Sinon, si c'est impair, évaluez un nouveau N0 comme 3×N0+1 (N0 = 3*N0+1) ;
d) Si N0 != 1, passez au point b).
L’hypothèse dit que quelle que soit la valeur initiale de N0, il ira toujours à 1.
Bien sûr, c’est une tâche extrêmement complexe d’utiliser un ordinateur afin de prouver
l’hypothèse de tout nombre naturel (cela peut même nécessiter une intelligence artificielle), mais
vous pouvez utiliser Python pour vérifier certains nombres individuels. Peut-être trouverez-vous
même celui qui réfuterait l’hypothèse.
Le travail demandé est d’écrir un programme Python qui lit un nombre naturel et exécute les
étapes ci-dessus tant que N0 reste différent de 1. Nous voulons également que vous comptiez les
étapes nécessaires pour atteindre l’objectif. Votre code doit également afficher toutes les valeurs
intermédiaires de N0.
Astuce : la partie la plus importante du problème est de savoir comment transformer l’idée de
Collatz en une boucle while - c’est la clé du succès.
2. Écrire un programme qui approxime par défaut la valeur de la constante mathématique e,
pour n assez grand (56 par exemple), en utilisant la formule :

n
1
e≈ ∑ i!
i =0

3. Écrire un programme en Python qui calcule la somme d’ordre n d’une suite Sn définie
comme suit en utilisant seulement les opérateurs de base.

n
(−1)i+1
Sn = ∑ 2i
i =1

1
Licence 1 ESTI & ESMGE Université Amadou Mahtar MBOW

Exercice 2 :
Écoutez cette histoire : un garçon et son père, un programmeur informatique, jouent avec des
blocs de bois. Ils construisent une pyramide.
Leur pyramide est un peu étrange, car il s’agit en fait d’un mur en forme de pyramide, il est plat.
La pyramide est empilée selon un principe simple : chaque couche inférieure contient un bloc
de plus que la couche supérieure.
La figure suivant illustre la règle utilisée par les constructeurs :

Écrire un programme qui lit le nombre de blocs que possèdent les constructeurs et qui affiche la
hauteur de la pyramide qui peut être construite à l’aide de ces blocs.
Remarque : la hauteur est mesurée par le nombre de couches entièrement terminées. Si les con-
structeurs n’ont pas un nombre suffisant de blocs et ne peuvent pas terminer la couche suivante,
ils terminent leur travail immédiatement.
Pour ce faire :
• Gérer d’abord le contrôle de saisie ;
• Initialiser la hauteur à 1 ;
• Utilisez la boucle “while True”. À chaque itération, retranchez h à la valeur saisie N et si
N-h-1 >=0 alors la valeur de h est incrémentée sinon le programme est arrété (break).
Exercice 3 :
Ecrire un programme en Python qui demande à l’utilisateur de saisir un nombre entier n et de lui
afficher la valeur de la somme 1 + 2 + . . . + n =
Exercice 4 :
Ecrire un programme en Python qui demande à l’utilisateur de saisir un nombre entier n et de lui
afficher tous les diviseurs de ce nombre.
Exercice 5 :
Ecrire un programme en langage Python qui demande à l’utilisateur de saisir un nombre entier n
et de lui afficher si ce nombre est premier ou non.

Dr Ousmane KHOUMA 2 Année Académique 2020 - 2021

Vous aimerez peut-être aussi