Vous êtes sur la page 1sur 3

Algo et Prgm 4 SI

Récurrents + Arithmétiques

Exercice N°1 :

Ecrire l’algorithme d’un programme qui stocke la décomposition en facteurs premiers


d'un nombre entier strictement positif dans un tableau composé de deux colonnes.
La première colonne doit contenir les nombres premiers facteurs et la deuxième
colonne contenant les puissances des nombres contenus dans la première. Et
ensuite affiche les éléments de ce tableau sous la forme 450 = 2^1*3^2*5^2.

Exercice N°2:

Un entier est dit premier s’il n’est divisible que par 1 et par lui-même.
Un entier est dit semi-premier s’il n’a que deux diviseurs sauf 1 et lui-même et
chacun de ces deux diviseurs doit être premier.
Exemple :
15 = 3*5 avec 3 est premier et 5 est premier et 3 et 5 sont les seuls diviseurs de 15
sauf 1 et 15.
Ecrire un programme qui permet de vérifier si un entier donné est premier, semi-
premier ou ni premier ni semi-premier.

Exercice N°3:

Un entier naturel est dit nombre ROND si son écriture binaire contient autant de 1
que de 0.

Exemple : 9 est représenté en binaire par 1001 donc 9 est un nombre ROND.

Écrire un programme Pascal qui permet de trouver et d’afficher tous les entiers
ROND de l’intervalle [1,1000].

Exercice N°4:

Ecrire une fonction qui calcule la somme des chiffres d'un nombre entier strictement
positif et recommence le calcul avec le résultat obtenu tant que celui-ci n'est pas
compris entre 1 et 9. Après chaque calcul la fonction affiche à l'écran la somme
obtenue. La fonction retournera le nombre entre 1 et 9 obtenu.
Exemple :Si le nombre passé en paramètre à la fonction est 123456.
La fonction affichera : 21 (car 1+2+3+4+5+6=21)

Lycée Alahd aljadid Prof : Mr Ferjani Amine


Algo et Prgm 4 SI

3 : (car 2+1=3) La fonction retournera 3.

Exercice N°5: (Triangle de pascal)

On rappelle que
Cnp = 1 si (p = 0) ou (p = n)
Cnp = Cn-1 p-1 + Cn-1 p sinon
On veut remplir le triangle de pascal en faisant appel à chaque fois, à la fonction C
en lui donnant les paramètres nécessaires, puis afficher ce dernier.
1- Analyser le problème et le décomposer en modules.
2- Donner une analyse et un algorithme pour chaque module.
3- Donner la traduction Pascal.
NB : Prévoir des solutions récursives.
Exercice N°6 :

On veut déterminer si un nombre est divisible par 9 par la méthode suivante (on
suppose que ce nombre ne commence pas par 9) :

On part du premier chiffre le plus à gauche, on ajoute (addition « +») le deuxième


chiffre (s'il y en a un), si le résultat est supérieur ou égal à 9, on lui soustrait 9 (" -")
sinon on ne fait rien. On répète ensuite la même opération pour les chiffres suivants.
Le nombre est divisible par 9 si et seulement si le résultat final est nul. (La condition
d’arrêt est lorsqu’on atteint le dernier chiffres le plus à droite [long (ch)])

Ecrire une analyse d’une fonction booléenne estDivisiblePar9 qui indique si le


nombre entier positif passé en paramètre est divisible par 9 en mettant en œuvre la
méthode décrite ci-dessus. La fonction recevra le nombre entier sous la forme d'une
chaîne de caractères contenant son écriture décimale.

Exemple :

Pour le nombre 78192 (passé en paramètre à la fonction sous la forme de la chaîne


"78192") la fonction effectuera donc les opérations suivantes:

7 + 8 = 15 15 est supérieur ou égal à 9 on lui soustrait 9 pour obtenir 6 (6 = 15 - 9)

6 + 1 = 7  7 est strictement inférieur à 9 (Ne rien faire)

7 + 9 = 16  16 est supérieur ou égal à 9 on lui soustrait 9 pour obtenir 7 (7 = 16 –


9)

7 + 2 = 9  9 est supérieur ou égal à 9 on lui soustrait 9 pour obtenir 0 (0 = 9 – 9)

Lycée Alahd aljadid Prof : Mr Ferjani Amine


Algo et Prgm 4 SI

Le résultat est nul donc 78192 est divisible par 9 (78192 = 9 x 8688).

Exercice N°7 :

On appelle MINIMAX d’une matrice d’entiers la valeur minimale des maxima de


chaque ligne. (Le minimum des maximums de chaque ligne)

On veut remplir aléatoirement une matrice M formée de L lignes et C colonnes


d’entiers distincts formés de deux chiffres chacun (L et C doivent êtres
comprises entre 4 et NMax avec NMax est une constante qui est égale à 20) puis
afficher le MINIMAX de cette matrice.

1- Analyser le problème et le décomposer en modules

2- Donner une analyse pour chaque module

3- Elaborer l’algorithme du programme principal

NB : Prévoir au moins deux modules récursifs.

Exemple :

Le Max 

M : L = 4. C = 6 12 25 31 16 33 77 77

22 98 17 53 62 19 98

55 46 26 58 39 18 58

11 15 60 61 74 32 74

Le MINIMAX est 58

Lycée Alahd aljadid Prof : Mr Ferjani Amine