Questions de Cours: Devoir Surveillé #2
Questions de Cours: Devoir Surveillé #2
Questions de Cours: Devoir Surveillé #2
Devoir surveillé
N° 2
Questions de cours
Quel résultat fournit les programmes suivants, interpréter les résultats :
Solution:
Exercice I
Un coefficient binomial est défini pour deux entiers positifs n et k tels que n ≥ k. C’est le nombre de parties
de k éléments dans un ensemble de n éléments. On le note : Ckn , et sa valeur est calculée par la formule
suivante :
n × n − 1 × ... × n − (k − 1)
Ckn =
k!
Question 1 : Écrire un programme python qui lit un entier positif p, et qui affiche la valeur de la factorielle
de p : p! = 1 × 2 × 3 × ... × (p − 1) × p.
NB : pour p = 0 affiche 1
Solution:
p = int ( input ( ” e n t r e z ␣un␣ e n t i e r ” ) )
f = 1
f o r i in range ( 1 , p +1):
f = f ∗ i
print ( f )
Question 2 : Écrire un programme python qui lit deux entiers positifs n et k tels que n ≥ k, et qui affiche la
valeur du produit : n × n − 1 × ... × n − (k − 1)
Solution:
n = int ( input ( ” e n t r e z ␣un␣ e n t i e r ” ) )
k = int ( input ( ” e n t r e z ␣un␣ e n t i e r ” ) )
p = 1
for i in range ( 0 , k ) :
p = p ∗ ( n−i )
print ( p )
Question 3 : Écrire un programme python qui lit deux entiers positifs n et k tels que n ≥ k, et qui affiche la
valeur du coefficient binomial Ckn .
Exemple : La fonction binomial (6, 3) affiche le nombre 20
Solution:
n = int ( input ( ” e n t r e z ␣un␣ e n t i e r ” ) )
k = int ( input ( ” e n t r e z ␣un␣ e n t i e r ” ) )
p = 1
for i in range ( 0 , k ) :
p = p ∗ ( n−i )
f = 1
f o r i in range ( 1 , k + 1 ) :
f = f ∗ i
print ( p// f )
Exercice II
Un nombre entier naturel non nul est dit abondant s’il est strictement inférieur à la somme de ses di-
viseurs stricts.
Question 4 : Écrire un programme qui permet de calculer la somme des diviseurs stricts de p donné.
Solution:
p = int ( input ( ” e n t r e z ␣un␣ e n t i e r ” ) )
s = 0
f o r i in range ( 1 , p ) :
i f p % i == 0 :
s = s + i
print ( s )
Question 5 : Écrire un programme qui permet de déterminer si un nombres p est un nombre abondant ou
non.
Solution:
p = int ( input ( ” e n t r e z ␣un␣ e n t i e r ” ) )
s = 0
f o r i in range ( 1 , p ) :
i f p%i ==0:
s = s + i
if p < s :
print ( ” Le␣nombre␣ ” , p , ” ␣ e s t ␣ abondant ” )
else :
print ( ” Le␣nombre␣ ” , p , ” ␣n ’ e s t ␣ pas ␣ abondant ” )
Question 6 : Écrire un programme qui permet de déterminer s’il existe un nombre abondant inférieur à un
nombre N .
Solution:
N = int ( input ( ” e n t r e z ␣un␣ e n t i e r ” ) )
Trouve = F a l s e
i =0
while i <N and Trouve == F a l s e :
s = 0
fo r j in range ( 1 , i ) :
i f i%j ==0:
s = s + j
if i < s :
Trouve = True
i=i +1
i f Trouve == True :
print ( ” e x i s t e ” )
else :
print ( ”n ’ e x i s t e ␣ pas ” )
Question 7 : Écrire un programme qui permet d’afficher seulement N premiers nombres abondants.
Solution:
N = int ( input ( ” e n t r e z ␣un␣ e n t i e r ” ) )
i =0
k=1
while i <N:
s = 0
f o r j in range ( 1 , k ) :
i f k%j ==0:
s = s + j
if k < s :
print ( k )
i=i +1
k= k+1