Choisissez un mode et saisissez des entiers. Le mode « Reste » accepte aussi les nombres négatifs et montre la différence entre le reste mathématique (positif ou nul) et l’opérateur % des langages de programmation.
Table des matières
-
Ce que vous pouvez faire sur cette page
-
À quoi sert ce calcul ?
-
Mode d'emploi
-
Formules et figures
-
Symboles et termes
-
Ce qu’il est utile de savoir avant de commencer
-
Calculer avec Excel
-
Calculer avec Google Sheets
-
Calculer avec Python
-
Écrire la formule en LaTeX et autres langages mathématiques (à copier-coller)
-
Faire faire le calcul par ChatGPT
-
Les atouts de DataChef
-
Fonctions connexes
-
Liste des calculatrices NumberChef
Ce que vous pouvez faire sur cette page
- Trouvez le reste de la division d’un entier \(a\) par \(n\). Les nombres négatifs sont acceptés (par exemple \(-7\) divisé par \(3\)) : la page affiche côte à côte le reste mathématique (\(0 \leqslant r < n\)) et le résultat de l’opérateur % en C, Java, JavaScript et autres langages (qui peut être négatif)
- Vérifiez si la congruence \(a \equiv b \pmod{n}\) est vraie, avec la raison : la différence \(a - b\) est-elle un multiple de \(n\) ?
- Obtenez le reste exact d’une énorme puissance, comme \(7^{100}\) divisé par \(13\), avec les étapes de l’exponentiation rapide (même les nombres trop grands pour une calculatrice ordinaire)
- Visualisez le reste sur un cadran d’horloge (le cercle des restes modulo \(n\)) et voyez comment les restes tournent en boucle sur les mêmes positions (le cadran s’affiche quand le modulo \(n\) vaut de 2 à 24)
- Une explication simple des formules et des formules à copier-coller pour Excel, Google Sheets et Python sont réunies sur cette page
À quoi sert ce calcul ?
Sur un cadran de 12 heures, 14 h s’affiche sur le 2 : c’est exactement le calcul de reste 14 mod 12 = 2. Les jours de la semaine fonctionnent de la même façon, sur une horloge qui fait un tour tous les 7 jours. Par exemple, si nous sommes lundi, comme 100 mod 7 = 2, dans 100 jours nous serons « 2 jours après lundi », c’est-à-dire mercredi.
Agendas papier comme applications de calendrier font correspondre les dates et les jours de la semaine avec ce calcul de reste.
Le dernier chiffre d’un code-barres de produit (EAN-13) ou d’un ISBN de livre est une clé de contrôle calculée à partir des autres chiffres avec un reste. Pour un code EAN-13, par exemple, on multiplie les chiffres alternativement par 1 et par 3, on additionne, et le dernier chiffre est choisi à partir du reste de ce total divisé par 10.
Si un chiffre est mal saisi, le reste ne correspond plus, et la caisse ou le site marchand repère l’erreur aussitôt. La clé à deux chiffres du numéro de sécurité sociale (97 moins le reste de la division du numéro par 97) et le contrôle d’un IBAN (le reste de la division par 97 doit valoir 1) reposent sur la même idée.
RSA, le chiffrement à clé publique le plus connu, qui sert par exemple à transmettre des numéros de carte bancaire en toute sécurité, utilise directement « le reste d’une énorme puissance » dans ses calculs. Une puissance modulo n se calcule vite, mais remonter du résultat au nombre de départ est extrêmement difficile. C’est cette propriété à sens unique qui assure la sécurité.
L’exponentiation rapide, dont le mode « Puissance modulo » de cette page affiche les étapes, est le calcul que les logiciels de chiffrement effectuent tous les jours.
En programmation, l’opérateur % sert tout le temps : i % 2 distingue les nombres pairs des impairs, et i % n crée un ordre qui recommence tous les n éléments (choisir le joueur suivant dans un jeu au tour par tour, revenir à la première diapositive après la dernière, etc.).
Avec des nombres négatifs, % donne des résultats différents selon les langages : connaître la différence entre « le reste mathématique et le % de C ou Java » aide à traquer les bugs.
Partagez 63 crayons équitablement entre 12 personnes : chacune en reçoit 5 et il en reste 3 (63 = 12 × 5 + 3). Ranger un stock dans des cartons (combien de cartons pleins de n, et combien d’articles en trop), répartir des invités en groupes pour une fête : chaque situation « partager équitablement et voir ce qui reste » est ce calcul.
La division euclidienne a = n × q + r réunit toutes ces situations du quotidien en une seule formule.
Formules et figures
Symboles et termes
Symboles
| \(\equiv\) | est congru à | Le symbole de la congruence. C’est un signe égal à trois traits au lieu de deux : il signifie « égal dans le monde des restes », ce qui est moins fort que « exactement égal ». |
| \(\bmod\) (mod) | modulo | L’abréviation de « modulo », du latin modulus (petite mesure). « \(a \bmod n\) » désigne « le reste de la division de \(a\) par \(n\) », et « \(\pmod{n}\) » écrit après une égalité annonce « on travaille modulo \(n\) ». Dans les manuels français, on écrit aussi \(a \equiv b\ [n]\). |
| \(a,\ b\) | a, b | Les entiers dont on étudie le reste. Dans une congruence, ce sont les deux entiers à gauche et à droite. Par tradition, on désigne les nombres fixés par les premières lettres de l’alphabet. |
| \(n\) | n | Le modulo (le nombre par lequel on divise). On utilise souvent la lettre \(n\), comme « nombre ». Sur cette page, c’est un entier supérieur ou égal à 1. |
| \(q\) | q | Le quotient, d’après son initiale. Quand on divise un nombre négatif, le quotient est arrondi à l’entier inférieur pour que le reste soit positif ou nul (division euclidienne). |
| \(r\) | r | Le reste, d’après son initiale. En mathématiques, on le choisit toujours tel que \(0 \leqslant r < n\). |
| \(m\) | m | L’entier de la définition de la congruence qui indique combien de fois le modulo est contenu dans la différence. Il peut être négatif ou nul. |
| \(a^{k}\) | a puissance k | Le produit de \(k\) facteurs égaux à \(a\) (une puissance). Le petit nombre \(k\) en haut à droite est l’exposant, qui indique le nombre de facteurs. |
| % | pour cent (comme opérateur, modulo) | L’opérateur modulo, qui donne un reste dans de nombreux langages de programmation. C’est le même signe que le pourcentage, mais avec un autre rôle. En C, Java et JavaScript, son résultat pour les nombres négatifs peut différer du reste mathématique (voir l’idée clé de la formule 1). |
Termes
| reste | Ce qui reste quand une division ne tombe pas juste. En mathématiques, on le choisit toujours positif ou nul et strictement inférieur au diviseur. |
| quotient | L’entier qui indique combien de fois on peut retirer le diviseur. C’est le \(q\) de la division euclidienne \(a = n \times q + r\). |
| modulo | Le nombre \(n\) par lequel on divise pour obtenir les restes avec lesquels on travaille. Sur un cadran d’horloge, c’est le nombre de graduations d’un tour complet. « Modulo 12 » veut dire « en regardant les restes de la division par 12 ». |
| congru | Deux entiers sont congrus modulo \(n\) quand ils ont le même reste dans la division par \(n\). C’est un terme d’arithmétique, différent des figures superposables en géométrie. |
| congruence | Une relation de la forme \(a \equiv b \pmod{n}\). On peut additionner, soustraire et multiplier des congruences comme des égalités : les problèmes de restes se résolvent donc par des transformations. C’est un outil de base de l’arithmétique, utilisé en maths expertes (Terminale), aux olympiades et en informatique. |
| multiple | Un nombre obtenu en multipliant un entier par un autre entier. « La différence est un multiple du modulo » est la définition de la congruence. |
| division euclidienne | La division qui arrondit le quotient à l’entier inférieur quand le diviseur est positif : le reste est alors positif ou nul, même pour un dividende négatif. L’opérateur // de Python et la fonction ENT d’Excel fonctionnent ainsi. |
| opérateur modulo | L’opérateur % qui donne un reste en programmation. C, Java et JavaScript arrondissent le quotient vers 0 (le reste prend le signe du dividende). Python et Ruby utilisent la division euclidienne (le reste prend le signe du diviseur, donc il est positif ou nul quand le modulo est positif). |
| exponentiation rapide | Une méthode pour trouver le reste d’une énorme puissance avec peu de multiplications : on élève au carré plusieurs fois de suite en prenant le reste, on écrit l’exposant comme une somme de puissances de 2 et on multiplie les morceaux. On l’appelle aussi exponentiation par carrés successifs ; elle sert notamment dans le chiffrement RSA. |
| classe de congruence | L’idée de regrouper les entiers selon leur reste dans la division par \(n\). Dans le monde modulo \(n\), tout entier tombe dans l’un des \(n\) groupes, de reste \(0\) à \(n-1\). Les nombres pairs et impairs sont le regroupement selon le reste de la division par 2. |
| périodicité | Le fait que les restes des puissances répètent le même motif. Il n’y a que \(n\) restes possibles, donc ils finissent par revenir sur une valeur déjà vue. Repérer le cycle dans les problèmes de dernier chiffre (modulo 10) est un classique des olympiades. |
| premiers entre eux | Deux entiers sont premiers entre eux quand leur PGCD vaut 1. Cette notion apparaît dans la condition pour diviser les deux membres d’une congruence par un même nombre. |
Ce qu’il est utile de savoir avant de commencer
Voici ce qu’il est utile de savoir pour utiliser le calcul de cette page en le comprenant, et pas seulement en appuyant sur le bouton.
Si vous bloquez, revoir ces notions est le chemin le plus court.
| Division avec reste (CE2-CM1, 8-10 ans) |
|
| Multiples et diviseurs (CM1-6e, 9-12 ans) |
|
| Nombres relatifs (5e-4e, 12-14 ans) |
|
| Puissances (4e-3e, 13-15 ans) |
|
| Division euclidienne dans les entiers relatifs (Terminale maths expertes, 17-18 ans) |
|
Calculer avec Excel
| Dividende a | -7 |
| Modulo (diviseur) n | 3 |
| Reste mathématique (positif ou nul) | =MOD(B1;B2) |
| Quotient (division euclidienne) | =ENT(B1/B2) |
| Vérification n × quotient + reste | =B2*B4+B3 |
| Reste façon C/Java (arrondi vers 0) | =B1-B2*TRONQUE(B1/B2) |
| Entier a | 38 |
| Entier b | 14 |
| Modulo n | 12 |
| Différence a − b | =B1-B2 |
| Reste de la différence ÷ n | =MOD(B4;B3) |
| Résultat (VRAI = congrus) | =MOD(B4;B3)=0 |
| Base a | 7 |
| Exposant k | 100 |
| Modulo n | 13 |
| Reste de a^1 | =MOD(B1;B3) |
| Reste de a^2 (carré de la ligne du dessus, puis reste) | =MOD(B4^2;$B$3) |
| Reste de a^4 | =MOD(B5^2;$B$3) |
| Reste de a^8 | =MOD(B6^2;$B$3) |
| Reste de a^16 | =MOD(B7^2;$B$3) |
| Reste de a^32 | =MOD(B8^2;$B$3) |
| Reste de a^64 | =MOD(B9^2;$B$3) |
| Reste combiné pour 100 = 64 + 32 + 4 | =MOD(MOD(B10*B9;$B$3)*B6;$B$3) |
La fonction MOD d’Excel renvoie le même « reste mathématique » (positif ou nul) que cette calculatrice. Même pour les nombres négatifs, =MOD(-7;3) vaut 2. S’il vous faut le reste façon C/Java, utilisez la dernière ligne du premier tableau, qui arrondit le quotient vers 0 avec TRONQUE.
Le premier tableau divise −7 par 3 : le reste est 2 et le quotient −3.
Le deuxième tableau vérifie 38 ≡ 14 (mod 12). Le reste de la différence 24 est 0 : il affiche VRAI (congrus).
Le troisième tableau calcule par exponentiation rapide le reste de 7 puissance 100 divisé par 13. La réponse est 9. « ^ » est le signe de la puissance. Excel ne calcule exactement qu’avec environ 15 chiffres : quand le modulo n dépasse 7 chiffres, les carrés perdent en précision. Dans ce cas, utilisez la calculatrice de cette page ou Python.
Calculer avec Google Sheets
| Dividende a | -7 |
| Modulo (diviseur) n | 3 |
| Reste mathématique (positif ou nul) | =MOD(B1;B2) |
| Quotient (division euclidienne) | =ENT(B1/B2) |
| Vérification n × quotient + reste | =B2*B4+B3 |
| Reste façon C/Java (arrondi vers 0) | =B1-B2*TRONQUE(B1/B2) |
| Entier a | 38 |
| Entier b | 14 |
| Modulo n | 12 |
| Différence a − b | =B1-B2 |
| Reste de la différence ÷ n | =MOD(B4;B3) |
| Résultat (VRAI = congrus) | =MOD(B4;B3)=0 |
| Base a | 7 |
| Exposant k | 100 |
| Modulo n | 13 |
| Reste de a^1 | =MOD(B1;B3) |
| Reste de a^2 (carré de la ligne du dessus, puis reste) | =MOD(B4^2;$B$3) |
| Reste de a^4 | =MOD(B5^2;$B$3) |
| Reste de a^8 | =MOD(B6^2;$B$3) |
| Reste de a^16 | =MOD(B7^2;$B$3) |
| Reste de a^32 | =MOD(B8^2;$B$3) |
| Reste de a^64 | =MOD(B9^2;$B$3) |
| Reste combiné pour 100 = 64 + 32 + 4 | =MOD(MOD(B10*B9;$B$3)*B6;$B$3) |
Calculer avec Python
a = -7
n = 3
# le % de Python renvoie le même « reste mathématique » que cette calculatrice (positif ou nul quand le modulo est positif)
print(a % n) # 2
# divmod renvoie ensemble le quotient de la division euclidienne et le reste (a = n × quotient + reste)
quotient, remainder = divmod(a, n)
print(quotient, remainder) # -3 2
# congruence : 38 ≡ 14 (mod 12) ? (on vérifie si la différence est un multiple de 12)
print((38 - 14) % 12 == 0) # True
# puissance modulo n : reste de 7 puissance 100 divisé par 13
# pow à 3 arguments utilise l'exponentiation rapide, donc le calcul est instantané même pour d'énormes exposants
print(pow(7, 100, 13)) # 9
def c_style_mod(x, m):
# même résultat que % en C, Java et JavaScript (quotient arrondi vers 0)
r = x % m
if r != 0 and x < 0:
r -= m
return r
print(c_style_mod(-7, 3)) # -1
Écrire la formule en LaTeX et autres langages mathématiques (à copier-coller)
a = n × q + r (0 ⩽ r < n)
a = nq + r \quad (0 \leqslant r < n)
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>a</mi><mo>=</mo><mi>n</mi><mi>q</mi><mo>+</mo><mi>r</mi>
<mo>,</mo>
<mn>0</mn><mo>⩽</mo><mi>r</mi><mo><</mo><mi>n</mi>
</mrow>
</math>
a = n q + r, \ 0 <= r < n
{Quotient[a, n], Mod[a, n]}
q := floor(a/n); r := a mod n;
q = floor(a/n); r = mod(a, n);
a = nq + r (0 ⩽ r < n)
a ≡ b (mod n) ⇔ a − b = n × m
a \equiv b \pmod{n} \iff a - b = nm
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>a</mi><mo>≡</mo><mi>b</mi>
<mspace width="0,3em"/>
<mo>(</mo><mi>mod</mi><mspace width="0,3em"/><mi>n</mi><mo>)</mo>
<mo>⇔</mo>
<mi>a</mi><mo>−</mo><mi>b</mi><mo>=</mo><mi>n</mi><mi>m</mi>
</mrow>
</math>
a -= b (mod n) iff a - b = n m
Mod[a - b, n] == 0
(a - b) mod n = 0;
mod(a - b, n) == 0
a ≡ b (mod n)
(a × b) mod n = {(a mod n) × (b mod n)} mod n
(a \times b) \bmod n = \{(a \bmod n)(b \bmod n)\} \bmod n
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mo>(</mo><mi>a</mi><mo>×</mo><mi>b</mi><mo>)</mo>
<mspace width="0,3em"/><mi>mod</mi><mspace width="0,3em"/><mi>n</mi>
<mo>=</mo>
<mo>{</mo>
<mo>(</mo><mi>a</mi><mspace width="0,3em"/><mi>mod</mi><mspace width="0,3em"/><mi>n</mi><mo>)</mo>
<mo>×</mo>
<mo>(</mo><mi>b</mi><mspace width="0,3em"/><mi>mod</mi><mspace width="0,3em"/><mi>n</mi><mo>)</mo>
<mo>}</mo>
<mspace width="0,3em"/><mi>mod</mi><mspace width="0,3em"/><mi>n</mi>
</mrow>
</math>
(a * b) mod n = ((a mod n) * (b mod n)) mod n
Mod[a b, n] == Mod[Mod[a, n] Mod[b, n], n]
(a * b) mod n = ((a mod n) * (b mod n)) mod n;
mod(a*b, n) == mod(mod(a, n)*mod(b, n), n)
(a×b) mod n = ((a mod n)×(b mod n)) mod n
a ≡ b, c ≡ d (mod n) ⇒ a+c ≡ b+d, a−c ≡ b−d, a×c ≡ b×d (mod n)
a \equiv b,\ c \equiv d \pmod{n} \Rightarrow a + c \equiv b + d,\ a - c \equiv b - d,\ ac \equiv bd \pmod{n}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>a</mi><mo>+</mo><mi>c</mi><mo>≡</mo><mi>b</mi><mo>+</mo><mi>d</mi>
<mo>,</mo>
<mi>a</mi><mo>−</mo><mi>c</mi><mo>≡</mo><mi>b</mi><mo>−</mo><mi>d</mi>
<mo>,</mo>
<mi>a</mi><mi>c</mi><mo>≡</mo><mi>b</mi><mi>d</mi>
<mspace width="0,3em"/>
<mo>(</mo><mi>mod</mi><mspace width="0,3em"/><mi>n</mi><mo>)</mo>
</mrow>
</math>
a + c -= b + d, \ a - c -= b - d, \ a c -= b d (mod n)
Mod[a + c, n] == Mod[b + d, n] && Mod[a - c, n] == Mod[b - d, n] && Mod[a c, n] == Mod[b d, n]
(a + c) mod n = (b + d) mod n;
mod(a + c, n) == mod(b + d, n)
a + c ≡ b + d (mod n)
Faire faire le calcul par ChatGPT
Tu es un assistant de calcul en arithmétique (propriétés des nombres entiers). Effectue le calcul suivant en exécutant réellement du code Python, et fonde ta réponse uniquement sur les nombres obtenus à l’exécution (ne réponds pas de tête ni par estimation). Traite les 3 problèmes suivants. 1. Le reste mathématique de −7 divisé par 3 (choisi positif ou nul) et le quotient 2. Si 38 ≡ 14 (mod 12) est vraie (indique aussi si la différence est un multiple de 12) 3. Le reste de 7 puissance 100 divisé par 13 (utilise pow(7, 100, 13)) Utilise %, divmod et pow(base, exposant, modulo) de Python, et indique les formules utilisées et les nombres obtenus à l’exécution.
Mode d'emploi
-
1Saisissez vos nombresTapez les nombres à calculer dans les champs de saisie
-
2CalculezAppuyez sur le bouton « Calculer »
-
3Lisez le résultatLe résultat s’affiche aussitôt. La même page explique aussi le raisonnement et la formule
Les atouts de DataChef
Aucune compétence requise – simple et intuitif
Aucune donnée personnelle nécessaire
Le fichier est supprimé automatiquement après le téléchargement
Aucune mention de crédit nécessaire
Aucune autorisation préalable nécessaire