Informatique TD 1.4 Instruction conditionnelle
Lycée Jules Ferry Cannes Page 2 sur 2 TSI1
2 Corriger la syntaxe d'un programme
Le programme suivant permet d'indiquer si un nombre est premier ou non. Il arrive après la détermination
de la liste des nombres premiers.
Entrée
- NbPremiers contient la liste des nombres premiers : [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41,
43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
- Nb : nombre saisi par l'utilisateur (on suppose que c'est bien une entier positif).
Sortie
- Pas de sortie. Affiche un message indiquant si le nombre est premier ou non.
3) Corriger les erreurs de syntaxe en ajoutant notamment les indentations nécessaire par le tracé de
trait verticaux devant les lignes à indenter.
Nb = int ( input ( 'Saisir un entier positif inférieur à ' + str(NbPremiers[-1] + ' : '))
if Nb>NbPremiers[-1]:
print('Le nombre saisi', Nb, 'est supérieur à', NbPremiers[-1])
else: if Nb in NbPremiers
:
print(Nb, 'est un nombre premier')
else
:
print(Nb, "n'est pas un nombre premier")
3 Modifier un algorithme en réponse à une problématique
4) Proposer une modification de la question précédente afin d'afficher la position (en nombre
d'éléments) de Nb dans la liste NbPremier, dans le cas où Nb est un nombre premier. On pourra
numéroter les lignes du programme afin de n'écrire que les lignes modifiées et utiliser la méthode
index qui renvoit l'indice d'un élément dans une liste (exemple avec liste=[1,2,3] : liste.index(2)
renvoit l'indice 1)
La ligne 6 devient :
print ( Nb , 'est le ' , NbPremier.index(Nb)+1 , 'e nombre premier' )
4 Proposer un algorithme en réponse à une problématique
5) Proposer un algorithme calculant la factorielle d'un nombre (multiplication de tous les entiers non
nuls inférieurs ou égale à un nombre, exemple 6! → 6*5*4*3*2*1).
On vérifiera au préalable que le nombre N est un entier et qu'il est strictement positif (ce nombre
existe déjà). Dans le cas contraire, on affichera des messages d'erreurs appropriés.
factorielle=1
if type(N) is int :
if N > 0 :
for i in range(1,N+1):
factorielle=factorielle*i
print ("La factorielle de", i , "est", factorielle)
else :
print(N , "est un entier mais n'est pas strictement positif")
else :
print(N, "n'est pas un entier")