RÉVISIONS SUR LE BRANCHEMENT CONDITIONNEL ET LES BOUCLES TP
Révisions sur le branchement conditionnel et les boucles – TP
1G. BOUTARDet S. CALLEA 1 Lycée GAY-LUSSAC
TP RÉVISIONS SUR LE BRANCHEMENT CONDITIONNEL ET LES BOUCLES
Exercices
Exercice 1 – Programme mystère
On donne la fonction suivante : Python
1 def diviseurs(n):
2 compteur = 0
3 for d in range(1,n+1):
4 if n % d == 0:
5 compteur = compteur + 1
6 return compteur
1. Tester la fonctiondiviseursavec les valeursn=20, puisn=173.
2. Lors de l’exécution de la fonction, donner les valeurs prises par la variabled. 3. Que signifien % d? Que signifien // d?
4. Que signifien % d == 0?
5. Quelle valeur est renvoyée par cette fonction ?
Exercice 2 – Factorielle
Soitn∈N. On pose 0!=1 etn!=1×2× · · · ×n. Autrement dit,n! est le produit des entiers compris entre 1 etn.
1. Donner un relation reliant (n+1)!,n! etn+1.
2. Écrire un programme qui affecte un nombre entiernde votre choix à une variable et affiche la valeur de n! en utilisant une bouclefor.
Exercice 3 – Suite mystère
Le programme suivant affiche les premiers termes d’une suite (un)n∈N. Python
1 u,i = 1/3,0
2 while i < 20:
3 print(u)
4 u,i = 3*u,i+1
1. Donner l’indice du dernier terme de la suite calculé.
2. Soitn∈Nfixé. Donner l’expression deun+1 en fonction deun. 3. En déduire l’expression deunen fonction den.
4. Écrire un programme permettant de calculerunsans utiliser de bouclewhile. Vous comparerez les réponses de votre programme et du programme de l’énoncé.
PCSI 2021 – 2022 2 G. BOUTARDet S. CALLEA
RÉVISIONS SUR LE BRANCHEMENT CONDITIONNEL ET LES BOUCLES TP
Exercice 4 – Programme mystère
Que fait le programme suivant ? Python
1 from math import *
2 n = int(input("Entrez un entier supérieur à 1 : "))
3 r = sqrt(2)
4 for i in range(n-1):
5 r = sqrt(2)**r
6 print(r)
Travail à faire
Exercice 5 – Suite de Syracuse
On considère la suite de Syracuse :u0=a∈N?et, pour toutn∈N,
un+1= ( un
2 siunest pair, 3un+1 siunest impair.
1. Comment peut-on déterminer la parité d’un entier stocké dans une variableuen Python ?
2. Écrire un programme qui stocke dans deux variablesaetN des entiers naturels non nuls et qui affiche les termes u0,u1, . . . ,uN de la suite de Syracuse.
3. SiNest choisi « assez grand » (mais pas trop...), que constatez-vous ? La conjecture de Syracuse est : pour touta∈N?, il existen∈Ntel queun=1.
Poura∈N? fixé, on appelletemps de volde la suite le plus petit entierntel queun=1.
4. Écrire un programme qui stocke dans une variableaun entier naturel non nul et affiche la valeur du temps de vol de la suite (un)n∈N.
Indication: lorsquea=9, le temps de vol est 19.
G. BOUTARDet S. CALLEA 3 Lycée GAY-LUSSAC