Division modulaire
Divisez en arithmétique modulaire : 8 divisé par 3 modulo 11 donne 10, car l'inverse de 3 est 4 et 3 fois 10 laisse le reste 8. Vous obtenez aussi l'inverse, le pgcd et une valeur de contrôle. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- A
- 8
- B
- 3
- N
- 11
- A modulo
- 8
- B modulo
- 3
- Inverse
- 4
- Quotient
- 10
La division modulaire cherche un résidu q tel que b multiplié par q soit congruent à a modulo n. En arithmétique ordinaire vous divisez simplement ; en arithmétique modulaire la division est une multiplication par l'inverse modulaire du diviseur. Cet inverse n'existe que lorsque b et n sont premiers entre eux. Les laboratoires de cryptographie, la programmation de concours, les devoirs sur les corps finis et les exercices de congruences linéaires ont besoin de cette opération, pourtant de nombreux langages n'exposent qu'un GCD ou un inverse modulaire nu et vous laissent le pas de multiplication. Ce calculateur prend les entiers a, b et le module n, inverse b modulo n avec l'algorithme d'Euclide étendu lorsque c'est possible, multiplie par a et renvoie l'unique quotient non négatif entre zéro et n moins un, avec l'inverse, le gcd et un produit de vérification pour que vous puissiez contrôler le résultat sans refaire les étapes.
Ce que signifie la division modulaire et quand elle est définie
Dans les entiers tout nombre non nul a un réciproque dans les rationnels, de sorte que la division est toujours définie hors du zéro. Modulo n le cadre est plus strict : les résidus forment un anneau et seules les unités—éléments possédant un inverse multiplicatif—peuvent servir de diviseurs légaux. On dit que q est un quotient modulaire de a divisé par b modulo n lorsque b multiplié par q laisse le même reste que a quand les deux produits sont réduits modulo n.
De façon équivalente, q est congruent à a multiplié par l'inverse de b modulo n. L'inverse de b existe si et seulement si le gcd de b et n vaut un ; sinon tout multiple de b partage un facteur avec n et ne peut atteindre toutes les classes de résidus, de sorte qu'aucun q unique ne convient pour un a arbitraire.
Ingénieurs et étudiants rencontrent cette barrière lorsqu'ils divisent dans un module composite qui n'est pas un corps premier, lorsqu'ils annulent un coefficient dans une congruence linéaire ou lorsqu'ils défont une multiplication modulaire dans une étape de hachage ou de chiffrement. Notez que a lui-même n'a pas besoin d'être premier avec n ; seul le diviseur b doit être une unité. Cette asymétrie s'oublie facilement si l'on ne retient que le cas particulier de l'inverse modulaire avec a égal à un.
Usage pratique, limites, tarifs et livraison
Utilisez l'outil du navigateur lorsque vous voulez un quotient modulaire rapide en lisant une note de théorie des nombres, en vérifiant un devoir de la forme b x congruent à a mod n, ou en déboguant un pipeline modulaire qui multiplie déjà par des inverses à la main. Les entrées acceptées sont des entiers a et b de valeur absolue au plus un billion et des modules n de deux à un billion. Les résultats sont déterministes : le même triplet produit toujours les mêmes champs quotient, inverse et check.
Branchez le point de terminaison sur des aides de concours, des démos de corps finis, des bacs à sable d'enseignement RSA qui demandent plus que de simples inverses, ou tout pipeline entier qui préfère l'arithmétique exacte aux heuristiques en virgule flottante. Si vous n'avez besoin que de l'inverse de b sans multiplier par a, préférez la capacité dédiée d'inverse modulaire ; cette page cible l'intention complète de division que l'on cherche comme division modulaire ou a divisé par b mod n.
Cas d’usage
Labs de crypto et corps finis
Enseignants et étudiants peuvent diviser des éléments de corps modulo un premier, ou inspecter le gcd lorsqu'un module composite d'exemple rend le diviseur non inversible.
Correcteurs de devoirs et congruences linéaires
Des correcteurs automatiques peuvent vérifier les solutions de b x ≡ a (mod n) en comparant le quotient renvoyé et rejeter les cas où aucune classe de résidu unique n'existe.
Questions fréquentes
Que se passe-t-il si b n'est pas inversible modulo n ?
Le message inclut gcd(b, n) pour que vous sachiez pourquoi la division modulaire est indéfinie. L'échec de validation n'est pas facturé.
Comment le quotient est-il calculé ?
L'algorithme d'Euclide étendu trouve b⁻¹ mod n lorsque gcd(b, n) = 1 ; le calculateur multiplie ensuite cet inverse par a modulo n avec une arithmétique entière exacte.
Le calculateur de division modulaire est-il gratuit ?
L'outil du navigateur s'exécute gratuitement sur votre appareil.
Quelles plages de a, b et n sont acceptées ?
n doit être un entier de 2 à 1,000,000,000,000. a et b doivent être des entiers dont la valeur absolue est au plus cette même borne. Les valeurs hors de ces limites sont rejetées.
Combien fait 8 divisé par 3 modulo 11 ?
Le résultat est 10. L'inverse de 3 modulo 11 est 4, et multiplier 8 par cet inverse donne le quotient 10. Pour contrôler, 3 fois 10 laisse le reste 8 dans la division par 11.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/numth/modular-division \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"a":8,"b":3,"n":11}'const res = await fetch("https://api.kit.forhosting.com/numth/modular-division", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"a": 8,
"b": 3,
"n": 11
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/modular-division",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"a": 8,
"b": 3,
"n": 11
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/modular-division", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"a":8,"b":3,"n":11}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"a":8,"b":3,"n":11}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/modular-division", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"a": 8,
"b": 3,
"n": 11
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.modular_division",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Ce que signifie la division modulaire et quand elle est définie
Renvoyer une erreur invalid_input explicite lorsque b n'est pas inversible est plus utile qu'un résidu silencieux et faux : le client apprend que la division est indéfinie pour ce couple et peut brancher sur le gcd signalé au lieu de faire confiance à une bibliothèque approximative.
Comment ce calculateur inverse b et multiplie par a
Appelez la capacité avec les champs entiers a, b et n, où n vaut au moins deux. L'implémentation réduit d'abord a et b en résidus non négatifs a_mod et b_mod dans l'intervalle de zéro à n moins un, puis applique l'algorithme d'Euclide étendu à b_mod et n. Chaque étape enregistre le quotient entier et met à jour les coefficients de Bézout de sorte qu'à la fin le coefficient de b_mod multiplie b_mod plus un coefficient de n égale le gcd. Si ce gcd n'est pas un, la requête échoue avec invalid_input et un message qui nomme b, n et le gcd ; rien n'est facturé. Si le gcd vaut un, le coefficient de b_mod est réduit dans zéro à n moins un et stocké comme inverse. Le produit modulaire de a_mod et inverse est ensuite pris avec une arithmétique BigInt exacte afin que de grands résidus restent corrects jusqu'à la borne publiée, et le produit est renvoyé comme quotient. La réponse reprend aussi a, b, n, a_mod, b_mod, gcd et check égal à b_mod multiplié par quotient modulo n, qui doit égaler a_mod lorsque l'appel réussit. Les valeurs absolues de a et b, et le module n, sont bornées par un billion afin que tout intermédiaire reste dans un régime d'entiers sûrs du Worker.
Usage pratique, limites, tarifs et livraison
Utilisez l'API lorsqu'un script, un correcteur ou une plateforme éducative a besoin de nombreuses divisions sans embarquer une routine de GCD étendu et une étape multiply-mod soignée. Chaque requête réussie est un élément facturable à $0.002 ; les échecs de validation et les diviseurs non inversibles ne consomment pas de solde. Comme l'unité est un seul élément et que le moteur est purement parse, la latence reste faible et le canal web gratuit reflète l'API payante sans un second chemin de code qui pourrait diverger.
Cas d'intégration
Programmation de concours et arithmétique modulaire
Les programmeurs de concours peuvent calculer a/b mod n sous des modules premiers ou composites et détecter les diviseurs non inversibles via invalid_input au lieu de fragments ad hoc de GCD étendu.
Questions techniques
Comment calculer la division modulaire a ÷ b mod n ?
Envoyez un JSON avec les champs entiers a, b et n (n ≥ 2) à numth.modular_division. En cas de succès la réponse renvoie quotient dans 0..n−1, plus l'inverse de b, a_mod, b_mod, gcd et check égal à a_mod.