Un mathématicien ce n’est pas quelqu’un qui passe son temps à faire des calculs, c’est quelqu’un qui trouve des techniques pour ne pas avoir à les faire.
Anonyme

Divisibilité dans Z\mathbb{Z}

Z={,3,2,1,0,1,2,3,}\mathbb{Z} = \{\dots,-3, -2, -1, 0, 1, 2, 3,\dots \} est l'ensemble des entiers relatifs.

Dans ce cours, on généralise à Z\mathbb{Z} les notions de divisibilité, de division euclidienne, de PGCD\textrm{PGCD}. On découvre l'algorithme d'Euclide.

I] Définition, premières propriétés

Définition

Soit a,bZa, b \in \mathbb{Z}, on dit que aa divise bb, et on note aba\mid b,
s'il existe un entier kZk \in \mathbb{Z} tel que b=akb=ak.
Dans ce cas, bb est un multiple de aa.
aba\nmid b signifie : aa ne divise pas bb.

La définition est similaire à celle vue pour N\mathbb N^*.

Propriétés

Soient a,b,ca,b,c trois entiers relatifs.

  1. 1a1\mid a ; ( 11 est toujours un diviseur, de tout entier. )
  2. Si a1a\mid 1, alors a=±1a=\pm 1 ; ( ±1\pm1 sont les seuls inversibles de Z\mathbb{Z}. )
  3. Si aba\mid b, alors ±a±b\pm a\mid \pm b ; ( Le signe n'a pas d'importance. )
  4. a0a\mid 0 ; ( Zéro est multiple de tout entier ; tous les entiers divisent zéro. )
  5. Si 0a0\mid a, alors a=0a=0 ; ( Autrement dit : zéro ne divise que zéro. )
  6. aaa\mid a ; (réflexivité)
  7. Si aba\mid b et bcb\mid c, alors aca\mid c ; (transitivité)
  8. Si aba\mid b et aca\mid c, alors ab+ca\mid b+c ;
  9. Si aba\mid b, alors abca\mid bc et acbcac\mid bc;
  10. Si acbcac\mid bc avec c0c\neq 0, alors aba\mid b ;
  11. Si aba\mid b avec b0b\neq 0, alors 0<ab0<|a| \leqslant |b| ;
  12. Si aba\mid b et bab\mid a , alors a=±ba=\pm b.

Remarque : on a écrit que 00 divise 00, cependant 00 divisé par 00 n'est pas défini... Nuance.

Rappel : a|a| signifie valeur absolue de aa. Exemple +7=7|+7| = 7, et 7=7|-7|=7. De manière générale x=x|x| = x si est positif, et x=x|x| = -x si est négatif. Ou alors x=max(x,x)|x| = \text{max}(x, -x).

Une propriété très utile

Avec a,b,c,u,vZa, b, c, u, v \in \mathbb{Z},

On dit aussi que si aa divise bb et cc, alors aa divise toute combinaison linéaire de bb et cc.

Preuve : On a : b=k1ab = k_1 a, et c=k2ac = k_2 a, avec k1,k2Zk_1, k_2 \in \mathbb{Z}, ainsi
ub+vc=uk1a+vk2a=(uk1+vk2)aub+vc = uk_1 a + vk_2 a = (uk_1 + vk_2) a, avec (uk1+vk2)Z(uk_1 + vk_2) \in \mathbb{Z}
On conclut que : aub+vca\mid ub+vc

II] Division euclidienne

Théorème

Pour a,bZa,b \in \mathbb{Z}, avec b0b\neq 0, !  q,rZ\exists! \;q,r \in \mathbb{Z}, tel que a=bq+ra=bq+r, et 0r<b0\leqslant r<|b|.

⚠️ Attention, avec Python et divmod ou %, si b<0b<0, le reste rr vérifie alors b<r0b<r\leqslant 0.
Mais on a toujours a=bq+ra=bq+r.
Avec d'autres langages de programmation, il faudra vérifier la règle !

for b in [+3, -3]:
    for a in [-13, -12, +12, +13]:
        q, r = divmod(a, b)
        q, r = a//b, a%b # variante de la ligne précédente
        print(a, "divisé par", b, "=> quotient :", q, "; reste :", r)
        print("Vérification :", a, "=", str(b)+"*"+str(q), "+", r, end="  et  ")
        if b>0:
            print("0 <=", r, "<", b)
        else:
            print(b, "<", r, "<= 0")
        print()
-13 divisé par 3 => quotient : -5 ; reste : 2
Vérification : -13 = 3*-5 + 2  et  0 <= 2 < 3

-12 divisé par 3 => quotient : -4 ; reste : 0
Vérification : -12 = 3*-4 + 0  et  0 <= 0 < 3

12 divisé par 3 => quotient : 4 ; reste : 0
Vérification : 12 = 3*4 + 0  et  0 <= 0 < 3

13 divisé par 3 => quotient : 4 ; reste : 1
Vérification : 13 = 3*4 + 1  et  0 <= 1 < 3

-13 divisé par -3 => quotient : 4 ; reste : -1
Vérification : -13 = -3*4 + -1  et  -3 < -1 <= 0

-12 divisé par -3 => quotient : 4 ; reste : 0
Vérification : -12 = -3*4 + 0  et  -3 < 0 <= 0

12 divisé par -3 => quotient : -4 ; reste : 0
Vérification : 12 = -3*-4 + 0  et  -3 < 0 <= 0

13 divisé par -3 => quotient : -5 ; reste : -2
Vérification : 13 = -3*-5 + -2  et  -3 < -2 <= 0

Propriété

aba \mid b si et seulement si b=0b=0 ou alors a0a\neq 0 et le reste de la division euclidienne de bb par aa est 00.

III] PGCD de deux entiers

Définition

Pour tout entier aa, on note D(a)\mathcal{D}(a) l'ensemble des diviseurs de aa.
D(a)={kZ tels que ka}\mathcal{D}(a) = \{k \in\mathbb{Z} \text{ tels que } k\mid a\}

Par exemple :
D(24)={±1,±2,±3,±4,±6,±8,±12,±24}\mathcal{D}(24) = \{\pm1,\pm2,\pm3,\pm4,\pm6,\pm8,\pm12,\pm24\}

On a toujours :

  1. ±1,±aD(a)\pm1, \pm a \in \mathcal{D}(a) ;
  2. D(0)=Z\mathcal{D}(0) = \mathbb{Z} ;
  3. Si a0a\neq 0, alors D(a)[ ⁣[a..a] ⁣]\mathcal{D}(a) \subseteq [\![-|a|..|a|]\!].

Soient a,bZa, b \in \mathbb{Z}, dont un non nul au moins, on appelle PGCD de aa et bb (Plus Grand Commun Diviseur), et on note aba \land b, le plus grand entier divisant à la fois aa et bb.

⚠️ Attention : On étend cette définition en posant 00=00 \land 0 = 0 ; mais cela traduit toujours que tous les entiers divisent 00. Dans ce cas seul, cela ne traduit pas que 00 est le plus grand diviseur commun à 00 et 00 !!!

Propriétés

Pour a,bZa, b \in \mathbb{Z}, on a :

  1. ab=baa\land b = b\land a ;
  2. ab=±a±ba\land b = \pm a\land \pm b ;
  3. a0=0a=aa\land 0 = 0\land a = |a| ;
  4. ab=0    a=b=0a\land b = 0 \iff a=b=0 ;
  5. a1=1a\land 1 = 1.

On peut bien évidemment utiliser les méthodes étudiées sur N\mathbb{N}^*.

IV] Algorithme d'Euclide

On a vu comment calculer le PGCD\text{PGCD} de deux entiers ayant connaissance de leur décomposition en facteurs premiers, mais cette méthode est lente pour de grands entiers. L'algorithme d'Euclide est une méthode efficace.

Un exemple

On souhaite calculer PGCD(323,187)\text{PGCD}(323, 187).

divmod(323,187)=(1,136)\text{divmod}(323, 187) = (1, 136) ; On continue avec 187187 et 136136.
divmod(187,136)=(1,51)\text{divmod}(187, 136) = (1, 51) ; On continue avec 136136 et 5151.
divmod(136,51)=(2,34)\text{divmod}(136, 51) = (2, 34) ; On continue avec 5151 et 3434.
divmod(51,34)=(1,17)\text{divmod}(51, 34) = (1, 17) ; On continue avec 3434 et 1717.
divmod(34,17)=(2,0)\text{divmod}(34, 17) = (2, 0) ; Le reste est nul, le dernier diviseur est 1717.
D'après l'algorithme d'Euclide, PGCD(323,187)=17\text{PGCD}(323, 187) = 17.

Preuve :

  1. L'algorithme termine.
    Le diviseur suivant à la prochaine étape est le reste de la division actuelle, or on sait que le reste est strictement inférieur au diviseur, ce qui nous donne une suite strictement décroissante d'entiers naturels. Nécessairement elle arrive à zéro en un nombre fini d'étapes.
  2. L'algorithme est correct.
    Soit aba\geqslant b.
    Si b=0b=0, alors PGCD(a,b)=a\text{PGCD}(a, b) = a. C'est fini.
    Sinon, on fait la division euclidienne de aa par bb.
    a=bq+ra = bq+r, ainsi r=abqr = a-bq, et d'après la dernière propriété (utile) de I],
    on déduit que si dad \mid a et dbd \mid b, alors drd \mid r,
    mais aussi que si dbd \mid b et drd \mid r, alors dad \mid a.
    Dit autrement : les diviseurs communs à aa et bb sont les mêmes que ceux à bb et rr.
    En particulier ils ont le même PGCD. Ce qui justifie l'algorithme et prouve même un peu plus :

Les diviseurs communs à aa et bb, sont les diviseurs de leur PGCD.

V] Applications

Simplification de fractions

Une fraction ab\dfrac a b peut être simplifiée au maximum par le PGCD(a,b)\text{PGCD}(a, b), elle devient alors irréductible. C'est la bonne méthode à utiliser.

Exemple

Simplifions A=3965A = \dfrac{39}{65}.

Additions de fractions

Pour additionner deux fractions, on doit les mettre au même dénominateur. Une méthode consiste à utiliser le PPCM\text{PPCM}, qui se calcule... avec le PGCD\text{PGCD}.

Exemple

Calculons B=1160+1784B = \dfrac{11}{60} + \dfrac{17}{84}.

Problèmes classiques (type ancien Brevet)

Un philatéliste possède 16311631 timbres français et 932932 timbres étrangers. Il souhaite vendre toute sa collection en réalisant des lots identiques, c'est à dire comportant le même nombre de timbres français et le même nombre de timbres étrangers.

  1. Calculer le nombre maximum de lots qu'il pourra réaliser.
  2. Combien y-aura-t-il, dans ce cas, de timbres français et étrangers par lot ?

Réponse : Les lots sont identiques, donc le nombre de lot est un diviseur de 16311631, mais aussi de 932932, il en veut le maximum, donc le nombre de lots est le PGCD(1631,932)\text{PGCD}(1631, 932)...

\cdots