Je réserve ici
Maths expertes (option Tle) Terminale

Ressources · Terminale · Maths expertes (option Tle)

Congruences

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

  1. 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.
  2. Je réduis les nombres modulo n avant tout calcul, et je cherche le cycle dès qu’une puissance apparaît.
  3. Je calcule en citant la compatibilité à chaque étape et en écrivant le module.
  4. 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.
  5. 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 365 jours, une année bissextile 366 ; l’année 2027 n’est pas bissextile, l’année 2028 l’est (le 29 février 2028 existe). On numérote les jours de la semaine : samedi 0, dimanche 1, lundi 2, mardi 3, mercredi 4, jeudi 5, vendredi 6.
  1. 1. Reste de 365 modulo 7 :
    365=7×52+1 : une année non bissextile compte 52 semaines et 1 jour.
  2. 2. Jour de la semaine du 10 octobre 2027 :
    Du 10 octobre 2026 au 10 octobre 2027, il s’écoule 365 jours (pas de 29 février entre ces deux dates). Le numéro du jour augmente de 365≡1[7] : samedi (0) devient dimanche (1).
  3. 3. Jour de la semaine du 10 octobre 2028 :
    Du 10 octobre 2027 au 10 octobre 2028, il s’écoule 366 jours, car le 29 février 2028 est entre les deux. 366=7×52+2, donc 366≡2[7] : dimanche (1) devient le jour 1+2=3, un mardi.
  4. 4. Jour de la semaine 1000 jours après le samedi 10 octobre 2026 :
    1000=7×142+6, donc 1000≡6[7] : le jour 0 devient le jour 6, un vendredi.
  5. 5. Une activité a lieu le 10 octobre 2026, puis tous les 10 jours. Démontrer que la k-ième activité suivante tombe un samedi si et seulement si k est un multiple de 7. Nombre de jours écoulés jusqu’au premier samedi suivant où elle a lieu :
    Rédaction attendue. La k-ième activité suivante a lieu 10k jours plus tard ; elle tombe un samedi si et seulement si 10k≡0[7], soit 3k≡0[7] car 10≡3[7]. L’inverse de 3 modulo 7 est 5 (3×5=15≡1[7]) ; en multipliant par 5, k≡0[7]. Réciproquement, si k=7j, 10k=70j est un multiple de 7. La première fois, k=7, soit 70 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 N de huit chiffres, suivi d’une clé K=97−r, où r est le reste de la division euclidienne de N par 97 : la clé est comprise entre 1 et 97. À chaque saisie, le logiciel recalcule la clé et refuse le dossier si elle ne coïncide pas avec la clé annoncée.
  1. 1. Clé du numéro N=40618375 : K =
    97×418746=40618362 et 40618375−40618362=13, avec 0⩽13<97 : r=13 et K=97−13=84.
  2. 2. Inverse de 10 modulo 97, compris entre 1 et 96 :
    On cherche un multiple de 10 parmi 98, 195, 292, 389, 486, 583, 680… (les nombres 97k+1) : 680=10×68=7×97+1. Donc 10×68≡1[97] : l’inverse de 10 est 68.
  3. 3. Un opérateur se trompe sur un seul chiffre. Démontrer que l’erreur est toujours détectée. Pour 40618375 saisi 40618875, clé recalculée :
    Rédaction attendue. Si le chiffre de rang k (celui de 10k) est remplacé, le numéro saisi N′ vérifie N′−N=d×10k avec d entier et 1⩽|d|⩽9. Supposons N′≡N[97] : alors d×10k≡0[97]. En multipliant k fois par 68, inverse de 10, on obtient d≡0[97], impossible puisque 1⩽|d|⩽9. Donc N′≢N[97] : les restes, donc les clés, diffèrent. Ici N′−N=500, et 13+500=513=5×97+28 : le nouveau reste vaut 28 et la clé recalculée 97−28=69, différente de la clé correcte.
  4. 4. Un opérateur intervertit deux chiffres voisins distincts. Démontrer que l’erreur est détectée. Inverse de 9 modulo 97, compris entre 1 et 96 :
    Rédaction attendue. Notons a le chiffre de rang k+1 et b celui de rang k. Après l’échange, N′−N =(b−a)×10k+1+(a−b)×10k =9(b−a)×10k. Or 9×54=486=5×97+1 : l’inverse de 9 modulo 97 est 54. Si l’on avait N′≡N[97], on multiplierait 9(b−a)×10k≡0[97] par 54, puis k fois par 68 : b−a≡0[97], impossible car 1⩽|b−a|⩽9. L’interversion change donc la clé.
  5. 5. Un adhérent annonce le numéro 51204967 et la clé 60. Clé attendue par le logiciel :
    97×527886=51204942 et 51204967−51204942=25 : r=25, et la clé attendue est 97−25=72. Elle diffère de 60 : le dossier est refusé.
  6. 6. Avec le module 100 au lieu de 97, une erreur sur le chiffre des centaines passerait inaperçue. Plus petit entier k⩾1 tel que 10k≡0[100] :
    101=10≢0[100], mais 102=100≡0[100], donc 10k≡0[100] pour tout k⩾2. Modulo 100, seuls les deux derniers chiffres comptent : une erreur sur le chiffre des centaines, ou plus à gauche, ne change pas la clé. Avec 97, 10 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 x : A = 0, B = 1, …, Z = 25. On code la lettre de rang x par la lettre de rang y, où y est le reste de 9x+5 modulo 26 : y≡9x+5[26] et 0⩽y⩽25. 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. 1. Lettre qui code M :
    M a pour rang 12 : 9×12+5=113=4×26+9, donc y=9 : M est codée par J.
  2. 2. Inverse de 9 modulo 26, compris entre 1 et 25 :
    27=26+1 est un multiple de 9 : 9×3=27≡1[26].
  3. 3. Démontrer que le déchiffrement s’écrit x≡uy+c[26], où u est l’inverse trouvé et 0⩽c⩽25. Valeur de c :
    Rédaction attendue. Si y≡9x+5[26], alors y−5≡9x[26] ; en multipliant par 3 : 3y−15≡27x≡x[26], car 27≡1[26]. Comme −15≡11[26], on obtient x≡3y+11[26]. Réciproquement, si x≡3y+11[26], alors 9x+5≡27y+104[26], et 27y+104≡y[26] car 27≡1 et 104=4×26 : chaque lettre codée provient d’une seule lettre claire.
  4. 4. Message clair correspondant au message codé « XBGP » :
    Avec x≡3y+11[26]. X (y=23) : 3×23+11=80=3×26+2, donc C. B (y=1) : 3+11=14, donc O. G (y=6) : 18+11=29≡3, donc D. P (y=15) : 45+11=56=2×26+4, donc E. Le message est CODE.
  5. 5. Un élève propose le codage y≡13x+4[26]. Expliquer pourquoi il est inutilisable. Nombre de lettres différentes qu’il produit :
    Rédaction attendue. Si x est pair, x=2m et 13x=26m≡0[26] ; si x est impair, x=2m+1 et 13x=26m+13≡13[26]. Donc toute lettre de rang pair est codée par E (rang 4) et toute lettre de rang impair par R (rang 17) : deux lettres seulement, et un message codé ne peut pas être déchiffré. La raison : 13 n’a pas d’inverse modulo 26, car pgcd(13;26)=13≠1.
Méthodes utiles : Cas 2 Cas 6
Problème 4 · Une suite étudiée modulo 5 et modulo 7★★★Difficile
On considère la suite (un) définie par u0=7 et, pour tout entier naturel n, un+1=5un+12. Tous ses termes sont des entiers naturels.
  1. 1. Valeur de u3 :
    u1=5×7+12=47, puis u2=5×47+12=247 et u3=5×247+12=1247.
  2. 2. Démontrer que tous les termes de la suite ont le même reste modulo 5. Ce reste vaut
    Rédaction attendue. u0=7=5+2, donc u0≡2[5]. Pour tout entier naturel n, 5un≡0[5] et 12≡2[5], donc un+1=5un+12≡2[5]. Ainsi un≡2[5] pour tout entier naturel n : aucun terme n’est divisible par 5.
  3. 3. Démontrer par récurrence qu’il existe un entier a tel que un=a×5n−3 pour tout entier naturel n. Valeur de a :
    Rédaction attendue. Pour n=0, il faut a−3=7, d’où a=10. Soit P(n) : « un=10×5n−3 ». Initialisation : 10×50−3=7=u0. Hérédité : si un=10×5n−3 pour un entier naturel n, alors un+1 =5(10×5n−3)+12 =10×5n+1−15+12 =10×5n+1−3. Conclusion : P(n) est vraie pour tout entier naturel n.
  4. 4. Démontrer que un+6≡un[7] pour tout entier naturel n. Reste de u2027 modulo 7 :
    Rédaction attendue. Modulo 7, 10≡3, donc un≡3×5n−3[7]. Les restes des puissances de 5 modulo 7 valent 1, 5, 4, 6, 2, 3 pour n=0 à 5, puis 56≡3×5=15≡1[7]. Donc 5n+6=56×5n≡5n[7], et un+6≡un[7] :
    n modulo 6012345
    5n modulo 7154623
    un modulo 7052136
    2027=6×337+5, donc u2027≡u5[7], et le reste vaut 6.
  5. 5. Nombre d’entiers n compris entre 0 et 100 tels que un soit divisible par 7 :
    D’après le tableau, un≡0[7] si et seulement si n≡0[6] : n=0, 6, 12, …, 96 (car 96=6×16), soit 17 entiers.
  6. 6. Justifier sans le calculer que u30 n’est pas divisible par 35. Reste de u30 modulo 35 :
    Rédaction attendue. 30≡0[6], donc u30≡0[7]. Mais u30≡2[5] : u30 n’est pas divisible par 5, donc pas par 35. Le reste ρ de u30 modulo 35 vérifie u30≡ρ modulo 7 et modulo 5, qui divisent 35 : ρ est un multiple de 7 compris entre 0 et 34 (0, 7, 14, 21 ou 28) dont le reste modulo 5 vaut 2. Seul 7 convient.
Problème 5 · L’exponentiation rapide en Python★★★Difficile
Pour calculer le reste de am modulo p sans former le nombre am, on utilise la fonction suivante, où a, m et p sont des entiers naturels avec p⩾2 :
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. 1. Pour l’appel puissance_mod(3, 13, 7), nombre de passages dans la boucle while :
    Valeurs des variables à chaque passage :
    Passage1234
    m au début13631
    r à la fin3353
    a à la fin2424
    Après le quatrième passage, m vaut 0 : la boucle s’exécute 4 fois, une fois par chiffre de l’écriture binaire 1101 de 13.
  2. 2. Démontrer qu’à chaque passage le produit r×am reste congru à 313 modulo 7, puis donner la valeur renvoyée :
    Rédaction attendue. Au départ, r×am=1×313. Pendant un passage, notons r, a, m les valeurs au début. Si m=2m′ est pair, r ne change pas, a est remplacé par un entier congru à a2 et m par m′ : comme am=(a2)m′, le produit r×am est conservé modulo 7. Si m=2m′+1 est impair, r est remplacé par un entier congru à r×a et am=a×(a2)m′ : le produit est encore conservé (compatibilité avec le produit et les puissances). À la sortie, m=0, donc r≡313[7] avec 0⩽r<7. Comme 36≡1[7] et 13=6×2+1, 313≡3[7] : la fonction renvoie 3.
  3. 3. Nombre de chiffres égaux à 1 dans l’écriture de 560 en base 2 :
    560=512+32+16=29+25+24, donc 560 s’écrit 1000110000 en base 2 : 10 chiffres, dont 3 égaux à 1.
  4. 4. Nombre total de multiplications effectuées par l’appel puissance_mod(a, 560, p) :
    La boucle tourne 10 fois, une fois par chiffre binaire de 560 : 10 élévations au carré, plus une multiplication de r pour chacun des 3 chiffres égaux à 1, soit 13 multiplications, contre 559 pour le calcul naïf a×a×…×a.
  5. 5. Démontrer que 74≡1[100], puis donner le nombre formé par les deux derniers chiffres de 72027, c’est-à-dire la valeur renvoyée par puissance_mod(7, 2027, 100) :
    Rédaction attendue. 72=49 et 74=492=2401=24×100+1, donc 74≡1[100]. Comme 2027=4×506+3, 72027=(74)506×73≡73=343≡43[100] : 72027 se termine par 43.
Méthodes utiles : Cas 2 Cas 3
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.

Prof de maths à Marseille · Cours particuliers au lycée · Aide aux devoirs