CHAPITRE 6 : LES ALGORITHMES ARITHMETIQUES L élève sera capable de manipuler des algorithmes permettant de résoudre des traitements de calcul : A. Le calcul du PGCD B. Le calcul du PPCM C. Les nombres premiers A. CALCUL DU PGCD : D. Les nombres parfaits, nombres amis E. La décomposition en facteurs premiers F. Le factoriel d'un entier Le PGCD (Plus Grand Commun Diviseur) de deux entiers est le plus grand entier permettant de diviser ces deux entiers. Activité : Ecrire un programme qui permet de saisir deux entiers A et B strictement positifs, puis calculer et afficher leur PGCD. b) Exemple : Pour A = 27 et B = 18, on procède comme suit pour calculer le PGCD : Si A = B alors le PGCD est A ou B Si non si A > B alors A A B Si non B B A Etape1: (A>B) A 27 18 = 9 (A B) Etape2: (A<B) B 18 9 = 9 c) Algorithmes du problème : Algorithme du programme principal : (A = B) Arrêt Algorithme de la fonction PGCD1 : Algorithme de la fonction PGCD2 0). 1)......... 2). 3). 0). 1)... 2). 3). Prof : MAALOUL Nefaa 1
B. CALCUL DU PPCM : Le PPCM (Plus Petit Commun Multiple) de deux entiers est le plus petit entier multiple à la fois de ces deux entiers Activité : Ecrire un programme qui permet de saisir deux entiers A et B strictement positifs, puis calculer et afficher leur PPCM. b) Méthode 1 Pour A = 64 et B = 3, on procède comme suit pour calculer le PPCM : On cherche tout d abord le minimum (Min) et le maximum (Max) entre A et B, puis on calcule le reste de la division de Max par Min, s il est égale à zéro alors Max est le PPCM, sinon on cherche le multiple successive de Max et Min qui est égale à Max + A + B Min est ainsi de suite jusqu'à ce qu on trouve comme reste de division de Max par Min égale à zéro. Etape1: (A > B) Max = A et Min = B Etape2: Max MOD Min = 64 MOD 3 = 1 0 Alors Max = 64 + 64 + 3 3 = 128 Etape3: Max MOD Min = 128 MOD 3 = 2 0 Alors Max = 128 + 64 + 3 3 = 192 Etape4: Max MOD Min = 192 MOD 3 = 0 Alors Arrêt avec PPCM = Max = 192 c) Algorithme de la fonction PPCM : d) Méthode 2 : À l'aide du PGCD Dans le cas où aucun des deux entiers et n'est nul, le plus petit commun multiple peut être calculé en utilisant le plus grand commun diviseur (ou PGCD) de a et b : Rq : il y a une autre méthode pour le PPCM, par addition. Voila le code en PASCAL : Prof : MAALOUL Nefaa 2
Function PPCM(A,B:integer):integer; var a1,b1:integer; Begin a1:=a; b1:=b; WHILE (a1<>b1) do Begin if (a1<b1) then a1:=a1+a else b1:=b1+b; end; PPCM:=a1; End; C. LES NOMBRES PREMIERS: Un nombre est dit premier s il ne se divise que par 1 eu lui-même, exemple 7. Activité : Ecrire un programme qui permet de saisir un entier A strictement positif, puis vérifier s il est premier ou non et afficher le résultat. b) Exemple Vérifier 17 : Etape 1 : on a (17 Mod 2 0) Etape 2 : on a (17 Mod 3 0) Etape 3 : on a (17 Mod 4 0) Etape 4 : on a (17 Mod 5 0) Etape 5 : on a (17 Mod 6 0) Vérifier 15 : Etape 1 : on a (15 Mod 2 0) Etape 6 : on a (17 Mod 7 0) Etape 7 : on a (17 Mod 8 0) Etape 8 : on a (9>17 Div 2) Alors arrêt du traitement et 17 est un nombre Premier Etape 2 : on a (15 Mod 3 = 0) Alors arrêt du traitement et 15 n est pas un nombre Premier c) Algorithme de la fonction Premier : Prof : MAALOUL Nefaa 3
D.LA DECOMPOSITION EN FACTEURS PREMIERS : La décomposition d un entier en produits facteurs premiers consiste à écrire cet entier sous la forme de produits de ces diviseurs. b) Exemple La méthode de décomposition en facteurs premiers est évidente dans les exemples suivants : 4220 2 364 2 2110 2 128 2 1055 5 91 7 211 211 13 13 1 1 4220 = 2 x 2 x 5 x 211 364 = 2 x 2 x 7 x 13 Activité : Ecrire un programme qui permet de saisir un entier A>1, puis chercher et afficher la décomposition en produits de facteurs premiers de cet entier. c) Algorithmes du problème : 1. Algorithme du programme principal : 2. Algorithme de la procédure Remplir_FP : 3. Algorithme de la procédure Affiche : Prof : MAALOUL Nefaa 4
E. LE CALCUL DU FACTORIEL : La factorielle d un entier n donné est le produit de tous les entiers de l intervalle [1,n]. Le factoriel de n est noté n!. n! = n x (n-1) x (n-2) x x 3 x 2 x1 b) Exemple Le factoriel de 7 est égal à 7! = 7x6x5x4x3x2x1 = 5040 : c) Exercice : Un arrangement de p objets parmi n objets différents est un sous-ensemble ordonné de p objets choisis parmi les n objets. Pour dénombrer le nombre d'arrangements, on a la formule Ecrire un programme qui permet de : Saisir deux entiers strictement positifs n et p tel que n>p Calculer et afficher Prof : MAALOUL Nefaa 5
F. LA CONVERSION ENTRE BASES DE NUMERATION : a) Définition Convertir un entier positif n dans une base b (b>=2) consiste à chercher la représentation de n dans la base b. Cette représentation s écrit sous la forme : b) Décimal vers Binaire Analyser puis déduire l algorithme qui permet de convertir un nombre en base 10 en binaire. Principe Pour convertir un nombre en base 10 vers la base 2 consiste à faire des divisions successives par 2 en remplaçant à chaque fois le dividende par le quotient prendre les restes en ordre inverse. Exemple Convertir 13 en base 10 en binaire Prof : MAALOUL Nefaa 6
c) Décimal vers Hexadécimal Analyser puis déduire l algorithme qui permet de convertir un nombre en base 10 en hexadécimal. Principe Pour convertir un nombre en base 10 vers la base 16 consiste à faire des divisions successives par 16 en remplaçant à chaque fois le dividende par le quotient, prendre les restes en ordre inverse tout en codant les restes compris entre 10 et 15 selon la manière suivante : Exemple Reste 10 11 12 13 14 15 Code en base 16 Convertir 152 en (base 10) vers l hexadécimal (base 16) Application Nous proposons de convertir un nombre binaire en octal (base 8) en suivant la méthode suivante : - Extraire une partie de 3 bits. - Convertir cette partie en octal en utilisant les puissances de 2. Répéter ces deux opérations pour toutes les parties du nombre binaire. La concaténation des différents résultats donne le résultat en octal. On ajoute si nécessaire des «0» à gauche du nombre binaire de facon à obtenir une longueur multiple de 3. Prof : MAALOUL Nefaa 7
Exemples : Soit à convertir le nombre 1101 On suit la méthode suivante : La longueur du nombre n est pas multiple de 3 : Ajouter des 0 à gauche de ce nombre de façon à obtenir une longueur multiple de 3 : Le nombre devient 001101 Prof : MAALOUL Nefaa 8