1ère Année (Semestre 1)
ALGORITHMIQUE - EXERCICE –Série facultative
Exercice 1: Sachant que deux nombres A et B sont dits amis, si la somme des diviseurs de A est égale à B
et la somme des diviseurs de B est égale à A. Construire le sous-programme correspondant et l'utiliser dans
un algorithme qui nous donnera les nombres amis inférieurs à 500.
Exercice 2 : (EMD - dec93) On souhaite, à partir d'un nombre de 7 positions, extraire les 3 positions
centrales du nombre et
- les mettre dans un objet élémentaire RES1,
- les remplacer par des zéros et stocker le résultat dans RES2.
Exemple :
Exercice 3: Comment faire la monnaie de toute somme donnée en centimes, mais avec le minimum de
billets et/ou de pièces.
Exercice 4: Quelqu'un lance une fausse rumeur du type "à Birkhadem des gens ont entendu un chat
miauler en andalous", il la raconte à 3 amis, qui s'empressent de la répéter chacun à 3 personnes, ces 9
personnes la racontent à leur tour, chacune, à 3 autres personnes, etc...
La fausse rumeur ayant été lancée à 8 h. du matin, si l'on compte 4 minutes pour raconter l'histoire, à
quelle heure toute la ville qui compte 80.000 habitants sera au courant de la fausse rumeur ?
Vous avez vu à quelle vitesse se propage une fausse rumeur, construire maintenant une solution, en
paramétrant toutes les données.
Exercice 5 : Savez-vous quel jour de la semaine vous êtes né ? Quel jour tombera le 1 er janvier de l'an
2000 ? Quel jour de la semaine vous fêterez votre cinquantième anniversaire ? Non ?, eh bien ! La formule
suivante vous permettra de déterminer le jour de la semaine correspondant à une date donnée sous la forme
JJMMAAAA.
Jour = expression MOD 7
Expression = JJ – 1 + |5x/4| - |x/100| + |x/400| + |13(y+1)/5|
Avec si MM = 1 ou 2
y = MM + 12
x = AAAA – 1
Et si MM > 2
y = MM
x = AAAA
0 = dimanche, 1 = lundi, 2 = mardi, 3 = mercredi, 4 = jeudi, 5 = vendredi, 6 = samedi
Exercice 6 : Comment faire pour sortir, à chaque fois que vous exécutez un programme:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ @
@ LES ETUDIANTS DE 1ère ANNE SECTION : A GROUPE : nn BINOME : nn @
@ ONT LE PLAISIR DE VOUS PRESENTENT LES RESULTATS DE L'EXERCICE No: nn @
@ @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
L’encadré, le texte, les numéros de section, de groupe, d'exercice et le fond doivent être de couleurs
différentes. De plus l'encadré doit clignoter.
Exercice 7 : Il existe plusieurs manières de faire la monnaie de 1 Dinar avec des pièces de 5, 10, 20 et 50
centimes. Construire l'algorithme qui nous décrit ces différentes manières et qui en donne le nombre. En
sortie on aura :
LES DIFFERENTES MANIERES DE FAIRE LA MONNAIE DE 1 DINAR SONT :
*************************************************************************
a PIECES DE 50 Cts, b PIECES DE 20 Cts, c PIECES DE 10 Cts, d PIECES DE 5Cts
. . . . . . . .
. . . . . . . . .
IL EXISTE xx FACONS DE FAIRE LA MONNAIE
Exercice 8 : On peut démontrer que PGCD (a,b) = PGCD (b,r) ou r est le reste de la division de a par b.
Donc la recherche du PGCD (Plus Grand Commun Diviseur) de a et b est remplacée par la recherche du
PGCD de b et r. Si on répète ce processus, on obtient des couples (a,b), (b,r),..... de plus en plus petit jusqu'à
(g,o) ou g est le PGCD de a et b. Cette méthode est plus connue sous le nom d'algorithme d'EUCLIDE.
Construire la solution de ce problème.
Exercice 9 : Une autre méthode proche de celle d'EUCLIDE est appelée algorithme de NICOMACHOS.
Elle est basée sur la soustraction à la place de la division.
PGCD (a,b) = PGCD (b, a-b) avec a >= b
Construisez cet algorithme.
Exercice 10: La racine carrée d'un nombre A peut être obtenue par une méthode itérative en utilisant la
relation de récurrence
X i+1 = ½ (Xi + A/Xi) qui converge vers racine carrée de A
i étant le numéro de l'itération. On commencera le calcul en donnant à X0 la valeur A/2. Le calcul s'arrête si
la précision que vous aurez fixée est atteinte.
La précision est la valeur absolue de :
Construire un algorithme de calcul de la racine carrée d'un nombre en utilisant cette méthode.
Exercice 11: (EMD1- déc 2008) Comment vérifier si 2 nombres entiers A et B sont composés des mêmes chiffres.
Exemples : 23423536 et 62243533
98898775433 et 3887945
Exercice 12: (EMD-Mars2001). Considérant 2 bornes (Borne1 et borne2) représentées par des nombre
entiers, on vous demande d’abord d’imprimer tous les nombres Janus, compris entre ces deux bornes et
ensuite d’imprimer tous ceux qui ne le sont pas, mais à l’envers.
Un nombre Janus est un nombre qui représente la même valeur en le lisant dans les deux sens (exple : 78987)
Exemple : Si borne1 = 200 et borne2=215
On aura les résultats suivants :
Les nombres Janus sont :
202
212
Exercice 13 : (EMD- Mars 2002). Considérant deux nombres entiers N1 et N2 , de même taille. On voudrait
obtenir un nombre N3, qui est en fait composé à partir de N1 et N2, mais en "tressant" leurs divers chiffres. C'est à
dire en prenant un chiffre de N1 puis un chiffre de N2, ensuite un autre chiffre de N1 puis un chiffre de N2, et ainsi
de suite jusqu'à épuiser tous les chiffres de N1 et de N2.
Cependant, on devra effectuer le "tressage" selon diverses formes demandées:
a) soit en prenant les chiffres , de la droite vers la gauche ou l'inverse, c'est à dire de la gauche vers la
droite,
b) soit en commençant par la 1ère position de N1, puis la 1ère position de N2, ensuite la 2ième position de N1
puis la 2ième position de N2, etc…. . Soit l'inverse, c'est à dire en commençant par la 1ère position de N2,
puis la 1ère position de N1, ensuite la 2ième position de N2 puis la 2ième position de N1, etc…. .
Exemples : soient N1 = 1234 et N2=5678
On pourra avoir les résultats suivants :
1. Si on prend les chiffres à partir de la Gauche et en commençant par la 1ère position de N1,
N3 = 15263748
2. Si on prend les chiffres à partir de la Gauche et en commençant par la 1ère position de N2,
N3 = 51627384
3. Si on prend les chiffres à partir de la Droite et en commençant par la 1ère position de N1,
N3 = 48372615
4. Si on prend les chiffres à partir de la Droite et en commençant par la 1ère position de N2,
N3 = 84736251
Exercice 14: (EMD2- Avril 2000) Etant donné un nombre entier NB, on voudrait le réécrire, mais en ordonnant
les chiffres le composant de façon croissante.
Exemple : Si NB = 65782551, en ordonnant ses chiffres on aura
NB = 12555678
(Chergou B . – exos Supplementaires. DOC)