Congruences modulo n et restes, compatibilité avec l’addition, la multiplication et les puissances, restes de grandes puissances, critères de divisibilité démontrés (rappels du collège, 11, 7 et 13), tableaux de congruences, équations ax ≡ b [n] et inverse modulo n.
À propos de cette page
Cinq problèmes corrigés sur les congruences : jours de la semaine d’un calendrier, clé de contrôle modulo 97 qui détecte les erreurs de saisie, chiffrement affine modulo 26, suite étudiée modulo 5 et 7, exponentiation rapide en Python.
5 problèmes, du plus simple au plus difficile. Écris tes réponses, puis « Vérifier ».
Résoudre un problème : la méthode
Je traduis l’énoncé en congruences : « divisible par n » donne ≡ 0 [n], « le jour de la semaine » un reste modulo 7, « la lettre codée » un reste modulo 26.
Je réduis les nombres modulo n avant tout calcul, et je cherche le cycle dès qu’une puissance apparaît.
Je calcule en citant la compatibilité à chaque étape et en écrivant le module.
Je démontre ce qui est demandé (récurrence, tableau de congruences, multiplication par un inverse) et je vérifie sur un exemple numérique.
Je réponds dans les termes de l’énoncé : un jour, une lettre, une clé, un chiffre, et non un reste brut.
Problème 1 · Un calendrier modulo 7★★★Facile
Le samedi 10 octobre 2026, une association lance un calendrier d’activités. Une année non bissextile compte jours, une année bissextile ; l’année n’est pas bissextile, l’année l’est (le 29 février 2028 existe). On numérote les jours de la semaine : samedi , dimanche , lundi , mardi , mercredi , jeudi , vendredi .
1. Reste de modulo :
: une année non bissextile compte semaines et jour.
2. Jour de la semaine du 10 octobre 2027 :
Du 10 octobre 2026 au 10 octobre 2027, il s’écoule jours (pas de 29 février entre ces deux dates). Le numéro du jour augmente de : samedi () devient dimanche ().
3. Jour de la semaine du 10 octobre 2028 :
Du 10 octobre 2027 au 10 octobre 2028, il s’écoule jours, car le 29 février 2028 est entre les deux. , donc : dimanche () devient le jour , un mardi.
4. Jour de la semaine jours après le samedi 10 octobre 2026 :
, donc : le jour devient le jour , un vendredi.
5. Une activité a lieu le 10 octobre 2026, puis tous les jours. Démontrer que la -ième activité suivante tombe un samedi si et seulement si est un multiple de . Nombre de jours écoulés jusqu’au premier samedi suivant où elle a lieu :
Rédaction attendue. La -ième activité suivante a lieu jours plus tard ; elle tombe un samedi si et seulement si , soit car . L’inverse de modulo est () ; en multipliant par , . Réciproquement, si , est un multiple de . La première fois, , soit jours plus tard : le samedi 19 décembre 2026.
Problème 2 · Une clé de contrôle modulo 97★★★Moyen
Une mutuelle identifie ses adhérents par un numéro de huit chiffres, suivi d’une clé , où est le reste de la division euclidienne de par : la clé est comprise entre et . À chaque saisie, le logiciel recalcule la clé et refuse le dossier si elle ne coïncide pas avec la clé annoncée.
1. Clé du numéro : =
et , avec : et .
2. Inverse de modulo , compris entre et :
On cherche un multiple de parmi , , , , , , … (les nombres ) : . Donc : l’inverse de est .
3. Un opérateur se trompe sur un seul chiffre. Démontrer que l’erreur est toujours détectée. Pour saisi , clé recalculée :
Rédaction attendue. Si le chiffre de rang (celui de ) est remplacé, le numéro saisi vérifie avec entier et . Supposons : alors . En multipliant fois par , inverse de , on obtient , impossible puisque . Donc : les restes, donc les clés, diffèrent. Ici , et : le nouveau reste vaut et la clé recalculée , différente de la clé correcte.
4. Un opérateur intervertit deux chiffres voisins distincts. Démontrer que l’erreur est détectée. Inverse de modulo , compris entre et :
Rédaction attendue. Notons le chiffre de rang et celui de rang . Après l’échange, . Or : l’inverse de modulo est . Si l’on avait , on multiplierait par , puis fois par : , impossible car . L’interversion change donc la clé.
5. Un adhérent annonce le numéro et la clé . Clé attendue par le logiciel :
et : , et la clé attendue est . Elle diffère de : le dossier est refusé.
6. Avec le module au lieu de , une erreur sur le chiffre des centaines passerait inaperçue. Plus petit entier tel que :
, mais , donc pour tout . Modulo , seuls les deux derniers chiffres comptent : une erreur sur le chiffre des centaines, ou plus à gauche, ne change pas la clé. Avec , est inversible et toutes les positions sont contrôlées.
Problème 3 · Chiffrement affine★★★Moyen
Chaque lettre de l’alphabet est repérée par son rang : A = 0, B = 1, …, Z = 25. On code la lettre de rang par la lettre de rang , où est le reste de modulo : et . Rangs utiles : B = 1, C = 2, D = 3, E = 4, G = 6, J = 9, M = 12, O = 14, P = 15, R = 17, X = 23.
1. Lettre qui code M :
M a pour rang : , donc : M est codée par J.
2. Inverse de modulo , compris entre et :
est un multiple de : .
3. Démontrer que le déchiffrement s’écrit , où est l’inverse trouvé et . Valeur de :
Rédaction attendue. Si , alors ; en multipliant par : , car . Comme , on obtient . Réciproquement, si , alors , et car et : chaque lettre codée provient d’une seule lettre claire.
Avec . X () : , donc C. B () : , donc O. G () : , donc D. P () : , donc E. Le message est CODE.
5. Un élève propose le codage . Expliquer pourquoi il est inutilisable. Nombre de lettres différentes qu’il produit :
Rédaction attendue. Si est pair, et ; si est impair, et . Donc toute lettre de rang pair est codée par E (rang ) et toute lettre de rang impair par R (rang ) : deux lettres seulement, et un message codé ne peut pas être déchiffré. La raison : n’a pas d’inverse modulo , car .
Problème 4 · Une suite étudiée modulo 5 et modulo 7★★★Difficile
On considère la suite définie par et, pour tout entier naturel , . Tous ses termes sont des entiers naturels.
1. Valeur de :
, puis et .
2. Démontrer que tous les termes de la suite ont le même reste modulo . Ce reste vaut
Rédaction attendue. , donc . Pour tout entier naturel , et , donc . Ainsi pour tout entier naturel : aucun terme n’est divisible par .
3. Démontrer par récurrence qu’il existe un entier tel que pour tout entier naturel . Valeur de :
Rédaction attendue. Pour , il faut , d’où . Soit : « ». Initialisation : . Hérédité : si pour un entier naturel , alors . Conclusion : est vraie pour tout entier naturel .
4. Démontrer que pour tout entier naturel . Reste de modulo :
Rédaction attendue. Modulo , , donc . Les restes des puissances de modulo valent , , , , , pour à , puis . Donc , et :
modulo
modulo
modulo
, donc , et le reste vaut .
5. Nombre d’entiers compris entre et tels que soit divisible par :
D’après le tableau, si et seulement si : , , , …, (car ), soit entiers.
6. Justifier sans le calculer que n’est pas divisible par . Reste de modulo :
Rédaction attendue. , donc . Mais : n’est pas divisible par , donc pas par . Le reste de modulo vérifie modulo et modulo , qui divisent : est un multiple de compris entre et (, , , ou ) dont le reste modulo vaut . Seul convient.
Problème 5 · L’exponentiation rapide en Python★★★Difficile
Pour calculer le reste de modulo sans former le nombre , on utilise la fonction suivante, où a, m et p sont des entiers naturels avec : def puissance_mod(a, m, p): r = 1 a = a % p while m > 0: if m % 2 == 1: r = (r * a) % p a = (a * a) % p m = m // 2 return r
1. Pour l’appel puissance_mod(3, 13, 7), nombre de passages dans la boucle while :
Valeurs des variables à chaque passage :
Passage
m au début
r à la fin
a à la fin
Après le quatrième passage, m vaut : la boucle s’exécute fois, une fois par chiffre de l’écriture binaire de .
2. Démontrer qu’à chaque passage le produit reste congru à modulo , puis donner la valeur renvoyée :
Rédaction attendue. Au départ, . Pendant un passage, notons , , les valeurs au début. Si est pair, ne change pas, est remplacé par un entier congru à et par : comme , le produit est conservé modulo . Si est impair, est remplacé par un entier congru à et : le produit est encore conservé (compatibilité avec le produit et les puissances). À la sortie, , donc avec . Comme et , : la fonction renvoie .
3. Nombre de chiffres égaux à dans l’écriture de en base :
, donc s’écrit en base : chiffres, dont égaux à .
4. Nombre total de multiplications effectuées par l’appel puissance_mod(a, 560, p) :
La boucle tourne fois, une fois par chiffre binaire de : élévations au carré, plus une multiplication de r pour chacun des chiffres égaux à , soit multiplications, contre pour le calcul naïf .
5. Démontrer que , puis donner le nombre formé par les deux derniers chiffres de , c’est-à-dire la valeur renvoyée par puissance_mod(7, 2027, 100) :
Rédaction attendue. et , donc . Comme , : se termine par .
Bloqué sur ce chapitre ?
Moi c'est Ben, j'ai créé ce site pour aider le plus d'élèves possible, partout en France. Je peux aussi reprendre avec toi ce qui coince en cours particulier : en visio, ou à domicile si tu es à Marseille.