Inverse multiplicatif modulo n
Trouvez le nombre qui annule une multiplication modulo n : l'inverse de 3 modulo 11 est 4, car 3 × 4 = 12 laisse un reste de 1. Il n'existe que si l'entier et le module n'ont aucun facteur commun. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Entier
- 3
- Module
- 11
- Reste
- 3
- Inverse
- 4
- Gcd
- 1
- Vérification
- 1
L'inverse multiplicatif d'un entier modulo n est le résidu inverse qui satisfait entier fois inverse congruent à un modulo n. Cet inverse existe si et seulement si l'entier et le module sont premiers entre eux — leur plus grand commun diviseur vaut un. Tutoriels de cryptographie, étapes de clé privée RSA, division modulaire en programmation de concours et calculs sur groupes cycliques exigent cette opération, or de nombreux langages n'exposent qu'un GCD binaire et vous laissent les coefficients de Bézout.
Ce qu'est un inverse multiplicatif modulo n et quand il existe
En arithmétique ordinaire tout nombre non nul a un inverse multiplicatif : on divise par lui et on obtient un. En arithmétique modulaire la même idée devient une congruence. On dit que inverse est un inverse multiplicatif d'un entier modulo n lorsque l'entier fois inverse laisse un reste un en division par le module.
Comme les résidus tournent tous les n pas, tout entier n'a pas un tel inverse. L'obstacle est arithmétique, pas flottant : si d égale le gcd de l'entier et du module et d est supérieur à un, alors l'entier fois tout candidat est multiple de d, donc le produit ne peut jamais être congruent à un, qui n'est pas multiple de d.
Inversement, l'identité de Bézout garantit des entiers x et y avec entier fois x plus module fois y égal à un exactement quand ce gcd vaut un, et réduire x modulo n donne l'inverse. Les ingénieurs rencontrent cette condition en divisant dans un anneau fini, en choisissant des exposants de déchiffrement RSA qui inversent l'exposant public modulo phi de N, en annulant des multiplications modulaires dans des pipelines de hachage, ou en résolvant des congruences linéaires en programmation compétitive.
Renvoyer une erreur explicite lorsque la paire n'est pas première entre elle est plus utile qu'un échec silencieux : le client apprend qu'aucun inverse n'existe et peut brancher sur le gcd au lieu de deviner quelle bibliothèque a renvoyé un mauvais résidu. La calculatrice traite donc une paire non première entre elle comme entrée invalide, plutôt que d'inventer un inverse fictif qui casserait tout contrôle ultérieur de la congruence définissante.
Comment cette calculatrice exécute l'algorithme d'Euclide étendu
L'implémentation réduit d'abord l'entier dans la classe de résidu non négative residue de zéro à n moins un, puis applique l'algorithme d'Euclide étendu à la paire residue et modulus. Chaque étape enregistre le quotient entier et met à jour les coefficients de Bézout de sorte qu'à la fin le coefficient de residue multiplie residue plus un coefficient du module égale le gcd. Si le gcd vaut un, le coefficient de residue est réduit dans l'intervalle de zéro à n moins un et renvoyé comme inverse.
Les valeurs absolues sont bornées par un billion afin que tout doublement intermédiaire du produit modulaire reste dans la plage d'entiers sûrs de JavaScript. Les entiers négatifs sont acceptés et réduits avant la boucle euclidienne, ainsi une entrée de moins trois modulo onze est traitée comme residue huit et inversée dans cette classe.
Usage pratique, limites, tarification et livraison
Utilisez l'outil navigateur lorsque vous voulez un inverse rapide en lisant une note crypto, en vérifiant une congruence de devoir ou en déboguant une multiplication modulaire. Les entrées acceptées sont des entiers de valeur absolue au plus un billion et des modules de deux à un billion. Les résultats sont déterministes : la même paire donne toujours le même inverse et le même champ check.
Branchez le point de terminaison sur des bacs à sable d'enseignement RSA, des démos d'anneaux finis, des aides de programmation de concours ou tout pipeline entier qui préfère l'arithmétique exacte aux heuristiques approximatives. Gardez la paire dans les bornes publiées, traitez l'erreur de non-primalité relative comme un résultat de premier plan dans vos tests, et vous obtenez un inverse reproductible pour devoirs, greffons LMS et workers en bordure sans dresser un système d'algèbre informatique à vous.
Cas d’usage
Labs crypto et enseignement de RSA
Enseignants et étudiants peuvent inverser des exposants publics modulo φ(N) à la demande et inspecter le gcd lorsqu'un module d'exemple n'est pas premier avec l'exposant.
Programmation de concours et division modulaire
Les programmeurs compétitifs peuvent remplacer des extraits ad hoc de GCD étendu par un seul appel déterministe pour vérifier la division modulaire sous modules premiers ou composés.
Questions fréquentes
Comment obtenir l'inverse multiplicatif d'un entier modulo n ?
En cas de succès la réponse renvoie inverse dans 0..n−1, plus residue, gcd et check égal à 1.
Par quelle méthode l'inverse est-il calculé ?
L'algorithme d'Euclide étendu. Il trouve des coefficients de Bézout pour le residue réduit et le module ; lorsque le gcd vaut 1, le coefficient du residue est réduit dans 0..n−1.
Que se passe-t-il si l'entier et le module ont un facteur commun ?
Il n'existe alors aucun inverse, et le calculateur l'indique par un message qui nomme les deux nombres et leur plus grand diviseur commun, au lieu d'inventer une valeur qui ne vérifierait pas la congruence.
Comment vérifier que l'inverse est juste ?
Multipliez l'entier, déjà réduit modulo n, par l'inverse et divisez par n : le reste doit valoir 1. Cette vérification s'affiche à côté du résultat, avec l'entier réduit et le plus grand diviseur commun.
Quels nombres peut-on saisir ?
Un entier jusqu'à mille milliards en valeur absolue, négatif compris, et un module d'au moins 2. L'entier est d'abord ramené à son reste entre 0 et n moins 1, et l'inverse se trouve dans ce même intervalle.
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/math/multiplicative-inverse-modulo \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"integer":3,"modulus":11}'const res = await fetch("https://api.kit.forhosting.com/math/multiplicative-inverse-modulo", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"integer": 3,
"modulus": 11
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/multiplicative-inverse-modulo",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"integer": 3,
"modulus": 11
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/multiplicative-inverse-modulo", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"integer":3,"modulus":11}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"integer":3,"modulus":11}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/multiplicative-inverse-modulo", 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
{
"integer": 3,
"modulus": 11
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.multiplicative_inverse_modulo",
"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.
Limites
max_abs | 1000000000000 |
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
Cette calculatrice prend integer et modulus, exécute l'algorithme d'Euclide étendu de façon déterministe et renvoie l'unique inverse non négatif de zéro à n moins un, avec le residue réduit, le gcd et un produit check pour vérifier le résultat sans refaire les étapes.
Comment cette calculatrice exécute l'algorithme d'Euclide étendu
Appelez la capacité avec les champs entiers integer et modulus, où le module vaut au moins deux. Si ce gcd n'est pas un, la requête échoue avec invalid_input et un message qui nomme les deux entrées et le gcd ; rien n'est facturé. La réponse répète aussi integer, modulus, residue, gcd et check égal à residue fois inverse modulo n, qui doit valoir un lorsque l'appel réussit.
Usage pratique, limites, tarification et livraison
Utilisez l'API lorsqu'un script, un correcteur ou une plateforme éducative a besoin de nombreux inverses sans embarquer une routine de GCD étendu. Chaque requête réussie est un article facturable à $0.002 ; les échecs de validation et les paires non premières entre elles ne consomment pas de solde. Comme l'unité est un article unique et le moteur un parse pur, la latence reste faible et le canal web gratuit reflète l'API payante sans second chemin de code susceptible de diverger.
Cas d'intégration
Correcteurs de devoirs et pipelines de théorie des nombres
Correcteurs automatiques et scripts peuvent confirmer les inverses, détecter les entrées non coprimes via invalid_input et garder chaque produit intermédiaire dans les bornes documentées.
Questions techniques
Que répond l'API si l'entier et le module ne sont pas premiers entre eux ?
La requête échoue avec invalid_input. Le message inclut gcd(integer, modulus) pour expliquer pourquoi aucun inverse multiplicatif n'existe. L'échec de validation n'est pas facturé.
L'inverse multiplicatif modulo n est-il gratuit ?
L'outil navigateur s'exécute gratuitement sur votre appareil. Les appels API utilisent un solde KIT prépayé à $0.002 par article réussi ; entrées invalides ou non premières entre elles non facturées.
Quelles valeurs de integer et modulus sont acceptées ?
integer peut être tout entier fini dont la valeur absolue est au plus un billion. modulus doit être un entier de 2 à un billion. Les non-entiers sont rejetés.