Divisibilité et congruences

Raisonner dans les entiers, maîtriser la division euclidienne et exploiter les congruences.

Télécharger le PDF
Un mot d’encouragement, si tu en as besoin

Tu peux avancer à ton rythme. Une difficulté ne définit pas ce dont tu es capable.

Trouver du soutien
Avant de commencer5 questions pour vérifier tes bases
1. Dire que 3 divise 12 signifie…
2. Un entier impair s’écrit…
3. Parmi ces nombres, quel est un multiple de 7 ?
4. Dans 23 = 5 × 4 + 3, le reste euclidien est…
5. Quel nombre appartient à l’ensemble des entiers relatifs ?

Pourquoi ce chapitre ?

Le problème fondamental : résoudre dans les entiers

Pour partager 23 objets en lots de 5, le quotient réel 4,6 n'est pas le résultat attendu : tu obtiens 4 lots et 3 objets restants. En arithmétique, la contrainte entière change la question. Nous allons formaliser cette idée de reste, puis l'utiliser pour remplacer certains calculs immenses par quelques possibilités.

Prérequis. Entiers relatifs, multiples, distributivité, puissances, division d'entiers positifs, preuve par contraposée ou par l'absurde. On note \(\N=\{0,1,2,\ldots\}\) et \(\Z\) l'ensemble des entiers relatifs.

Le cours suit le socle officiel. Le problème de chiffrement affine est une application guidée ; la méthode générale pour inverser un entier modulo \(n\) sera démontrée dans la fiche 5.

L'idée avant la formule

Plusieurs entiers, un même reste

Les entiers 3, 10 et 17 ont le même reste modulo 7. Ils restent différents comme entiers, mais se comportent de la même manière si l'on ne regarde que le jour de la semaine. Leur différence est un multiple de 7 : c'est cette propriété exacte que la notation de congruence retiendra.

Un reste positif même en reculant

Reculer de 2 jours produit le même décalage qu'avancer de 5 jours. L'écriture \(-2=7(-1)+5\) possède un reste entre 0 et 6. Le quotient \(-1\) compte un tour en arrière ; le reste 5 donne une position autorisée. Cette lecture évite de confondre le signe du nombre et celui du reste.

Détecter une impossibilité avant de chercher

Un carré entier est congru à 0 ou à 1 modulo 4. Une somme de deux carrés ne peut donc être congrue à 3. On pourra ainsi exclure une équation entière sans essayer tous les couples. Attention au sens logique : franchir un test modulaire ne garantit pas qu'une solution entière existe.

Le cours formel

Divisibilité dans les entiers relatifs

Par exemple \(-3\mid12\) car \(12=(-3)(-4)\). Tout entier divise 0 car \(0=a\times0\). L'égalité \(0\mid b\) n'est vraie que pour \(b=0\). Pour un entier non nul \(b\), ses diviseurs entiers viennent par paires opposées ; on précise « positifs » si l'on veut seulement ceux de \(\N^*\).

Division euclidienne : existence et unicité

Congruences : oublier le quotient, garder le reste

Une congruence ne signifie pas une égalité : \(17\equiv2\pmod5\) mais \(17\ne2\). Elle dépend du module : \(17\not\equiv2\pmod4\). Pour \(n=1\), tous les entiers sont congrus.

Schéma : Congruences : oublier le quotient, garder le reste

Chaque entier se place dans l'une des cinq classes de restes. Après 4, ajouter 1 ramène à 0 ; cela ne veut pas dire que les entiers 4 et 5 sont égaux.

Calculer avec les congruences

Puissances et raisonnements par restes

Pour trouver \(a^N\pmod n\), calcule quelques puissances réduites. Si \(a^t\equiv1\pmod n\), écris \(N=tq+r\) : \(a^N\equiv a^r\). Il faut avoir établi le cycle avant de l'utiliser.

Démontrer les tests de divisibilité

Un entier naturel d'écriture décimale \(a_ma_{m-1}\cdots a_0\) vaut \(N=\sum_{k=0}^m a_k10^k\), où chaque chiffre est entre 0 et 9.

Pour 2, 5 ou 10, écrivons \(N=10q+a_0\). Le module divise \(10q\), donc \(N\equiv a_0\) : seul le chiffre des unités compte. Pour 4 ou 25, écrivons \(N=100q+(10a_1+a_0)\). Comme 100 est multiple du module, le premier terme a reste zéro ; on teste donc l'entier formé par les deux derniers chiffres. Pour 8 ou 125, \(1000=8\times125\) est multiple des deux modules : écrire \(N=1000q+r\), avec \(r\) formé des trois derniers chiffres, prouve de même \(N\equiv r\).

Algorithmes et précautions de programmation

Pour un diviseur positif, Python fournit quotient et reste via // et %. Il s'agit de la division avec quotient arrondi vers le bas, ce qui respecte la division euclidienne aussi pour un dividende négatif.

def division(a, b):
    if b <= 0:
        raise ValueError("b doit etre positif")
    q, r = a // b, a % b
    return q, r

def puissance_mod(a, n, m):
    if n < 0 or m <= 0:
        raise ValueError("n >= 0 et m > 0 requis")
    resultat = 1 % m
    for _ in range(n):
        resultat = (resultat * a) % m
    return resultat

Avant la boucle. Aucun facteur \(a\) n'a encore été multiplié. La variable contient le reste de 1 modulo \(m\), donc elle est congrue à \(a^0=1\) et appartient à \(\{0,\ldots,m-1\}\). Cela reste vrai pour \(m=1\), où le seul reste est 0.

Pendant un tour. Supposons qu'après \(k\) tours, la variable soit congrue à \(a^k\). La multiplier par \(a\) donne un nombre congru à \(a^{k+1}\). L'opération % m remplace ce nombre par son reste : elle conserve la congruence et remet la valeur entre 0 et \(m-1\). La propriété se transmet donc du rang \(k\) au rang \(k+1\).

À la fin. La boucle a effectué exactement \(n\) tours, donc la variable est congrue à \(a^n\) et dans l'intervalle des restes. L'unicité de la division euclidienne prouve qu'elle contient le reste recherché. Si \(n=0\), aucun tour n'est exécuté et la valeur initiale convient déjà. Cette initialisation et cette transmission constituent une preuve par récurrence, appelée invariant de boucle. La fiche 6 réduira le nombre de multiplications pour les grands exposants.

Boîte à outils : chercher le bon module

Une équation impossible modulo 3

Un chiffre inconnu dans une écriture décimale

La somme des chiffres de \(4a32\) vaut \(4+a+3+2=a+9\). Puisque \(a\) est un chiffre, \(0\le a\le9\), donc \(9\le a+9\le18\). Les seuls multiples de 9 dans cet intervalle sont 9 et 18. Résoudre \(a+9=9\) donne \(a=0\) ; résoudre \(a+9=18\) donne \(a=9\). On obtient donc exactement 4032 et 4932. Les contrôles \(9\times448=4032\) et \(9\times548=4932\) confirment les deux solutions.

Si l'on ajoute la divisibilité par 11, la somme alternée depuis les unités vaut \(2-3+a-4=a-5\). Parmi les chiffres autorisés, seul a=5 satisferait ce second test. Aucun chiffre ne satisfait donc simultanément les deux tests. Le domaine des chiffres, de 0 à 9, est une donnée essentielle du problème.

Un cycle n'est pas toujours immédiatement inversible

Passer d'une congruence à tous les entiers

L'écriture \(x\equiv4\pmod7\) ne signifie pas seulement x=4. Elle équivaut à \(x=4+7k\) pour un entier k, positif, nul ou négatif. Si une contrainte supplémentaire impose \(0\le x\le30\), alors \(0\le4+7k\le30\), donc k=0,1,2,3 ; les valeurs sont 4,11,18,25. Les contraintes d'intervalle viennent après la résolution modulaire.

Faire le point par une variante autonome

Essaie cette variante sans relire le corrigé précédent. Explique le choix de ta méthode, puis utilise les contrôles pour décider quelle notion retravailler.

Fiche-mémoire

  • \(a\mid b\) signifie \(b=ak\) pour un entier \(k\).

  • Division euclidienne : \(a=bq+r\) avec \(b>0\) et \(0\le r<b\).

  • \(a\equiv b\pmod n\) signifie \(n\mid(a-b)\), ou mêmes restes.

  • Addition, soustraction, produit et puissances positives conservent une congruence.

  • Une division exige une justification ; un inverse modulaire permet de simplifier.

  • Un test de divisibilité découle des puissances de 10 modulo le diviseur.

Autocontrôle. Mes quotients sont-ils entiers ? Le reste est-il dans le bon intervalle ? Ai-je conservé le module ? Ai-je prouvé la période des puissances ? Ai-je vérifié la réciproque d'une équivalence ?