Calculateur de Modulo

Reste (a mod b)
Suivant

L’opération modulo (ou “mod”) renvoie le reste après une division entière : 17 mod 5 = 2 car 17 = 3·5 + 2. C’est le cœur de l’arithmétique modulaire, de la cryptographie, des fonctions de hachage et du motif “chaque N-ième ligne” en SQL. Ce calculateur accepte des opérandes entiers ou décimaux, affiche explicitement le quotient et le reste, et gère les différences de conventions de signe entre les langages (le % de Python ≠ le % de C pour les négatifs).

Comment calculer a mod b

  1. 1

    Entrez le dividende (a) et le diviseur (b)

    Tous les nombres ; décimales et négatifs OK.

  2. 2

    Choisissez la convention de signe

    Division tronquée (C, Java, Go), division arrondie vers le bas (Python, Ruby, convention mathématique).

  3. 3

    Lisez le quotient et le reste

    a = q·b + r, avec la règle choisie pour le signe de r.

  4. 4

    Voir l'expression mathématique

    Les valeurs substituées rendent chaque étape visible.

Deux conventions pour les nombres négatifs

Pour les opérandes positifs, toutes les conventions s’accordent : 17 mod 5 = 2. Pour les négatifs, les langages diffèrent :

Langage -17 mod 5 Convention
Python, Ruby 3 Arrondi vers le bas
C, Java, Go, JS -2 Tronqué
Manuels de mathématiques 3 Arrondi vers le bas (généralement)

Division arrondie vers le bas : le quotient arrondit vers −∞. Le reste a toujours le signe du diviseur : même signe que b. Division tronquée : le quotient arrondit vers zéro. Le reste a le signe du dividende : même signe que a.

Pour a = -17, b = 5 :

  • Tronqué : q = -3 (arrondi vers 0), r = -17 − (-3)·5 = -2.
  • Arrondi vers le bas : q = -4 (arrondi vers -∞), r = -17 − (-4)·5 = 3.

Les deux sont corrects selon la convention. Choisissez celle qui correspond à votre langage.

Où le modulo apparaît

  • Temps. Minutes dans une heure, jours de la semaine, secondes dans une journée, toute l’arithmétique modulaire.
  • Tables de hachage. hash(key) mod table_size choisit un compartiment (bucket).
  • Planification en round-robin. task_i mod worker_count assigne le travail.
  • Cryptographie. RSA et Diffie-Hellman reposent sur mod n avec de grands nombres premiers.
  • Chaque N-ième ligne. En SQL : WHERE id % 3 = 0.
  • Vérification pair/impair. n mod 2 == 0 signifie pair.
  • Motifs alternés. Rayures de lignes, coloration d’un élément sur deux.
  • Tampons circulaires. (index + 1) mod size fait le tour.

Identités utiles

  • (a + b) mod n = ((a mod n) + (b mod n)) mod n
  • (a · b) mod n = ((a mod n) · (b mod n)) mod n
  • (a^k) mod n peut être calculé par exponentiation modulaire rapide en O(log k), critique pour la cryptographie à grands nombres.
  • a mod 1 = 0 pour tout entier a.
  • a mod a = 0.

Modulo décimal

Pour les nombres réels, la définition naturelle est a mod b = a − b · floor(a/b). 7.5 mod 2.5 = 0 car 7.5 est un multiple exact. 7.6 mod 2.5 = 0.1.

L’opérateur % de JavaScript fonctionne sur les nombres réels ; fmod de Python fait un mod réel tronqué ; % de Python fait un mod réel arrondi vers le bas.

Exemples résolus

  • 100 mod 7 : 100 = 14·7 + 2, donc reste 2.
  • 25 mod 4 : 25 = 6·4 + 1, donc reste 1.
  • -10 mod 3 (arrondi vers le bas) : -10 = -4·3 + 2, reste 2. (Tronqué donnerait -1.)
  • 17.5 mod 5 : 17.5 = 3·5 + 2.5, reste 2.5.

Questions fréquentes

La plupart du temps, ce sont des synonymes. Formellement, “modulo” implique souvent la convention mathématique (arrondie vers le bas), tandis que “reste” fait souvent référence à la variante tronquée (style C). Les noms apparaissent dans la documentation des langages ; quand cela compte, précisez la convention.

Python suit la convention mathématique (arrondie vers le bas), ce qui maintient le signe du reste correspondant à celui du diviseur. C suit la convention ALU matérielle (tronquée), où le signe du reste correspond à celui du dividende. Aucun n’est faux ; ce sont des choix différents.

Non, la division par zéro est indéfinie. Le calculateur renvoie une erreur pour b = 0.

En général, oui. Vérifiez la spécification de votre langage pour la gestion des nombres négatifs, Python et Ruby diffèrent de C, Java, Go et JavaScript.

Pour les mathématiques de style RSA avec des nombres de 2048 bits, utilisez une bibliothèque dédiée (la fonction pow(a, b, n) de Python, BigInteger.modPow de Java). Ce calculateur gère des valeurs courantes, pas des valeurs de niveau cryptographique.

Outils similaires

Outil disponible dans d’autres langues