Vous êtes sur la page 1sur 2

TD No 1

Ex.1 : Un nombre est dit parfait s’il est égal à la somme de ses diviseurs, 1 compris.
— 6 = 1 + 2 + 3, est un nombre parfait.
— 28 = 14 + 7 + 4 + 2 + 1, est un nombre parfait
⇒ Définir une fonction itérative retournant 1 si le nombre passé en arguements est un
nombre parfait et 0 sinon.
⇒ Donner un programme principal (main) de test.

Ex.2 : Soit la fonction puissance définie par :

puissance : R × N −→ R

(x, n) −→ xn
⇒ Définir cette fonction en langage C tout en donnant :
1. Une version itérative.
2. Une version récursive.
3. Un programme principal (main) de test.

Ex.3 : Soit u une suite définie par :



u0 = 2
un = un−1 + 3 si n ≥ 1

⇒ Définir une fonction u qui détermine la nième valeur un où n est un entier passé en
paramètres.
1. Donner une version itérative.
2. Donner une version récursive.
3. Donner un programme principal (main) de test.

Ex.4 : La suite de Fibonacci est dénie par :



 f0 = 1
f1 = 1
fn = fn−1 + fn−2 si n≥2

⇒ Ecrire la fonction f ib permettant de calculer le néme terme de cette suite, où n est
un entier passé en arguements.
1. Donner une version itérative.
2. Donner une version récursive.
3. Donner un programme principal (main) de test.

Ex.5 : Le pgcd de deux nombres a et b est obtenu en utilisant l’algorithme d’Euclide par une
suite de divisions euclidiennes comme expliqué ci-dessous :
i. Effectuer la division euclidienne de a par b et on note r le reste.

1
ii. Ensuite, a prend la valeur de b et b prend la valeur de r.
iii. Recommencer les étapes (i) et (ii) jusqu’à ce que b soit nul. Ainsi le PGCD est la
dernière valeur non nulle prise par b.
⇒ Définir la fonction pgcd qui calcule le PGCD de deux nombres entiers passés en
arguments :
1. Donner une version itérative.
2. Sachant que : 
pgcd(b, a%b) si b 6= 0
pgcd(a, b) =
a sinon
Donner une version récursive.
3. Donner un programme principal (main) de test.

Ex.6 : La fonction sin(x) peut être approchée par le développement suivant :


+∞
X x2k+1
sin(x) = (−1)k
(2k + 1)!
k=0

x 2k+1
Vu que nous ne pouvons pas calculer la somme des fractions (−1)k (2k+1)! infiniment,
x2k+1
nous proposons d’arrêter lorsque la valeur de (2k+1)! devient inférieure à une valeur
epsilon de votre choix (10−5 par exemple).

⇒ En utilisant la fonction pow définie dans math.h, donner la fonction sin(x) permettant
de calculer la valeur approximative de sin(x).
⇒ Donner un programme principal (main) de test.

Vous aimerez peut-être aussi