Puissance modulo
Obtenez le reste d'une puissance gigantesque sans jamais calculer la puissance : 2 puissance 10 modulo 1000 laisse 24, et 3 puissance 5 modulo 13 laisse 9. Des entiers exacts pour les devoirs, les concours et les compteurs cycliques. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Base
- 2
- Exposant
- 10
- Module
- 1 000
- Reste
- 24
- Expression
- 2^10 mod 1000
La puissance modulo répond à une question d'arithmétique quotidienne : quel reste reste-t-il lorsqu'on élève une base à un exposant puis qu'on divise par un module entier positif ? Les élèves écrivent ce reste comme la base à l'exposant, mod m ; les juges de concours, les compteurs cycliques, les démos de hachage jouet et les devoirs d'arithmétique modulaire ont besoin de la même valeur unique dans l'intervalle de zéro à m moins un, sans jamais matérialiser l'énorme puissance intermédiaire.
Ce que calcule la puissance modulo et pourquoi l'exponentiation rapide compte
Étant donnés des entiers base, exponent et un module m, la puissance modulo renvoie le reste unique r dans l'intervalle de zéro à m moins un tel que la base élevée à l'exposant soit congrue à r modulo m. En symboles, r ≡ base^exponent (mod m). L'élévation naïve multiplie la base par elle-même exponent fois et ne divise qu'ensuite, ce qui fait croître d'énormes intermédiaires et déborde le flottant ordinaire ou les entiers de largeur fixe bien avant qu'un exposant de concours ne finisse.
L'exponentiation rapide parcourt au contraire les bits de l'exposant du moins au plus significatif, élève au carré la base courante après chaque bit, multiplie dans le reste accumulé lorsque le bit est posé, et réduit modulo m après chaque multiplication, de sorte que les intermédiaires restent plus petits que m au carré. Lorsque m vaut un, tout entier est congru à zéro, donc le reste est toujours zéro.
Lorsque l'exposant est zéro, le reste vaut un pour toute base dès que m est plus grand que un, selon la convention du produit vide selon laquelle tout nombre fini à la puissance zéro vaut un. Les bases négatives sont d'abord réduites au système de résidus non négatifs modulo m afin que la chaîne de multiplications ne mélange jamais des restes signés. Les exposants négatifs sont rejetés parce qu'ils exigent des inverses modulaires qui peuvent ne pas exister et relèvent d'une autre intention de recherche que le reste d'une puissance.
Où un calculateur de puissance modulo justifie sa place
Les salles de classe et les plateformes de tutorat utilisent un outil dédié de puissance modulo afin que les apprenants vérifient a à la b, réduit modulo m, sans multiplier à la main d'énormes intermédiaires ni se fier à une calculette qui perd silencieusement la précision au-delà de deux à la cinquante-trois. Les générateurs d'examens et les correcteurs de systèmes de gestion de l'apprentissage ont besoin d'un oracle déterministe qui marque un module non positif comme invalide, au lieu d'accepter un sentinelle qu'un script défectueux pourrait aussi émettre.
Une validation échouée ne consomme pas le solde. Gardez les requêtes dans les limites de grandeur publiées, figez le reste dans les tests, et vous obtiendrez des résidus reproductibles pour les devoirs, les greffons LMS et les workers en bordure sans dresser une infrastructure symbolique à vous. La capacité ne calcule pas les inverses modulaires, ne résout pas les logarithmes discrets et n'élève pas un réel sans réduire modulo m ; ce sont d'autres intentions de recherche servies par d'autres fiches du catalogue.
Cas d’usage
Compteurs cycliques, hachages et scripts de partitionnement
Repliez une grande puissance entière dans une plage de résidus fixe pour les jeux, les classements ou les étapes de hachage jouet, sans réimplémenter carré-et-multiplie dans chaque langage.
Questions fréquentes
Que se passe-t-il si le module n'est pas un entier positif ?
Zéro, un module négatif et un module non entier ne définissent pas le reste non négatif standard utilisé ici et ne sont pas facturés.
Pourquoi un exposant négatif est-il rejeté ?
Les exposants négatifs signifient des puissances réciproques et exigent des inverses modulaires, qui peuvent ne pas exister lorsque base et modulus ne sont pas premiers entre eux. Ces cas sont hors périmètre.
Comment l'exponentiation rapide calcule-t-elle le reste ?
La méthode binaire carré-et-multiplie parcourt les bits de l'exposant, élève au carré la base courante modulo m à chaque pas et multiplie dans le reste lorsqu'un bit est posé, de sorte que le travail croît avec la longueur en bits de l'exposant.
La base d'une puissance modulo peut-elle être négative ?
Oui. Une base négative est d'abord ramenée entre zéro et m moins un, si bien que le reste est toujours nul ou positif. Seul l'exposant doit être nul ou positif, et le module un entier positif.
Quel reste donne une puissance d'exposant zéro ?
Elle donne 1 quelle que soit la base, à condition que le module soit supérieur à 1, car tout nombre élevé à la puissance zéro vaut un. Par exemple, 7 puissance 0 modulo 5 donne 1. Avec un module de 1, le reste vaut toujours 0.
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/power-modulo \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"base":2,"exponent":10,"modulus":1000}'const res = await fetch("https://api.kit.forhosting.com/math/power-modulo", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"base": 2,
"exponent": 10,
"modulus": 1000
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/power-modulo",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"base": 2,
"exponent": 10,
"modulus": 1000
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/power-modulo", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"base":2,"exponent":10,"modulus":1000}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"base":2,"exponent":10,"modulus":1000}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/power-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
{
"base": 2,
"exponent": 10,
"modulus": 1000
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.power_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_base | 1000000000000000 |
max_exponent | 1000000 |
max_modulus | 1000000000000000 |
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 calculateur de puissance modulo accepte trois entiers — base, exponent et un modulus entier positif —, évalue la puissance par exponentiation binaire rapide en réduisant après chaque multiplication, et renvoie ce reste avec une courte expression d'affichage. Si le module n'est pas un entier positif, la tâche échoue avec invalid_input au lieu d'inventer un reste.
Ce que calcule la puissance modulo et pourquoi l'exponentiation rapide compte
Le module doit être un entier positif ; zéro, une valeur négative ou une fraction ne définissent pas le reste non négatif standard et le calculateur renvoie invalid_input au lieu d'inventer une réponse.
Contrat d'entrée, algorithme, forme de la réponse et erreurs
L'algorithme est le carré-et-multiplie binaire sur des entiers exacts : pour chaque bit de l'exposant, la base courante est élevée au carré modulo m et, lorsque le bit est posé, multipliée dans le reste courant modulo m. Associez la réponse à votre propre composition si vous avez besoin d'un exposant typographique ; ce point de terminaison calcule uniquement le reste et n'émet ni graphiques ni prose pas à pas au-delà du champ formula. Envoyez un corps JSON avec trois entiers obligatoires : base, l'entier que l'on élève ; exponent, une puissance entière non négative ; et modulus, un entier positif m. Chaque champ peut arriver comme nombre JSON ou comme chaîne d'entier décimal ; les alias a pour base, exp ou e ou power pour exponent, et m ou mod pour modulus sont acceptés et résolus dans cet ordre. Champs absents, chaînes vides, fractions et valeurs non numériques échouent avec invalid_input en nommant le champ. La valeur absolue de la base ne peut dépasser un billiard, l'exposant un million, et le module un billiard ; ces plafonds gardent chaque multiplication modulaire dans un isolement Worker. En cas de succès le corps répète base, exponent et modulus nettoyés, renvoie remainder comme le résidu non négatif de base^exponent mod m, inclut une chaîne expression telle que deux circonflexe dix mod mille à l'affichage, et réaffirme l'identité remainder = base^exponent mod modulus. Contrôles classiques : base deux, exponent dix, modulus mille donne remainder vingt-quatre ; base trois, exponent cinq, modulus treize donne remainder neuf ; base sept, exponent zéro, modulus cinq donne remainder un. Un module qui n'est pas un entier positif — zéro, un entier négatif ou un non-entier — est invalid_input et n'est jamais facturé.
Où un calculateur de puissance modulo justifie sa place
Les entraîneurs de concours de programmation, les démos de hachage, les compteurs cycliques de jeu et les aides au partitionnement élèvent un entier et le replient dans une plage de résidus fixe ; appeler une API de parse minuscule évite de réimplémenter carré-et-multiplie dans chaque langage et d'entraîner un système d'algèbre informatique pour trois entiers. Comme l'implémentation est du parse pur de niveau A, chaque appel réussi coûte le tarif de base publié $0.002 sans jetons de modèle et sans réseau sortant.
Cas d'intégration
Vérifications de reste en classe et pour les devoirs
Laissez les élèves envoyer base, exponent et modulus et vérifier le reste unique de a^b mod m sans faire déborder une calculette ni une cellule de tableur.
Oracles de concours et notation automatique LMS
Notez les items de puissance modulo avec un reste déterministe et refusez un module non positif comme invalid_input, au lieu de renvoyer silencieusement un zéro creux.
Questions techniques
Que renvoie le calculateur de puissance modulo ?
Il renvoie le reste unique r dans 0 … m−1 tel que base^exponent ≡ r (mod m), plus une chaîne expression et l'identité remainder = base^exponent mod modulus.
Combien coûte le calculateur de puissance modulo ?
L'outil du navigateur est gratuit. Les requêtes API utilisent le solde prépayé KIT à $0.002 par appel réussi ; une entrée invalide n'est pas facturée.