Calculateur d’idempotents modulo n
Modulo 12, quatre résidus restent identiques une fois élevés au carré : 0, 1, 4 et 9. Saisissez un module jusqu’à mille milliards pour obtenir la liste complète et triée, avec les puissances de premiers qui expliquent leur nombre. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- N
- 12
- Idempotents
- 0, 1, 4, 9
- Quantité
- 4
- Facteurs en puissances de nombres premiers
- 4, 3
Un idempotent modulo n est un résidu qui reste inchangé lorsqu’il est multiplié par lui-même : le carré de x est congru à x modulo n. Ce calculateur renvoie la liste complète et triée de zéro à n moins un, et non un simple compte ou un seul exemple. Il factorise le module en puissances de nombres premiers deux à deux premières entre elles, puis applique le théorème chinois des restes pour construire exactement chaque réponse. Les facteurs figurent également dans le résultat afin que vous puissiez le contrôler, l’enseigner, le tester ou le réutiliser facilement.
Comprendre un résidu idempotent
La congruence caractéristique est x² ≡ x (mod n), ce qui revient à dire que n divise x(x − 1). Zéro et un conviennent toujours, car leur carré ne change pas leur classe résiduelle. Un module composé peut admettre d’autres solutions : des puissances premières distinctes de n peuvent diviser séparément les facteurs voisins x et x − 1.
Modulo douze, par exemple, la liste complète est zéro, un, quatre et neuf. Quatre convient puisque seize et quatre diffèrent de douze ; neuf convient puisque quatre-vingt-un et neuf diffèrent de soixante-douze. Le tableau idempotents ne contient que les représentants canoniques entre zéro et n moins un, sans doublons et triés. count donne leur nombre.
Vous obtenez ainsi toutes les solutions lorsqu’un simple test de candidat ne suffit pas.
Construction de la liste exhaustive
L’algorithme décompose d’abord n en puissances premières maximales, deux à deux premières entre elles, dont le produit vaut n. Sur une puissance première, x² ≡ x ne possède que deux classes : zéro et un. Le théorème chinois des restes garantit que chaque choix indépendant de zéro ou un sur chaque facteur définit une classe unique modulo n.
Avec k nombres premiers distincts, il existe donc 2^k idempotents. Le calculateur ne parcourt pas tous les entiers jusqu’à n moins un. Pour chaque puissance q, il forme n/q, calcule son inverse exact modulo q, combine les bases CRT pour tous les motifs binaires, réduit modulo n puis trie les résultats.
La factorisation repose sur une division d’essai déterministe. BigInt protège les produits et inversions CRT contre tout arrondi. Aucun réseau, horloge, hasard ou cache mutable n’intervient : une même entrée fournit toujours les mêmes facteurs et la même liste ordonnée.
Cas d’usage
Enseigner le théorème chinois des restes
Montrez comment des choix indépendants de zéro ou un sur les puissances premières deviennent des résidus concrets modulo un entier composé.
Tester du code d’arithmétique modulaire
Produisez une référence exacte et triée pour valider des implémentations d’anneaux, de congruences ou de classes résiduelles.
Explorer la structure des anneaux finis
Énumérez les éléments qui agissent comme des projections pour la multiplication dans l’anneau des entiers modulo n.
Questions fréquentes
Zéro et un sont-ils toujours présents ?
Oui. Ils sont toujours idempotents ; lorsque n vaut un, ces deux noms désignent l’unique résidu canonique zéro.
Combien existe-t-il d’idempotents ?
Pour n supérieur à un avec k facteurs premiers distincts, il y en a exactement 2^k. Le module un possède une seule classe.
Pourquoi renvoyer les puissances premières ?
Elles exposent les composantes copremières utilisées par le théorème chinois et expliquent le nombre de solutions.
Le calculateur essaie-t-il chaque résidu ?
Non. Il factorise n et construit directement l’ensemble complet au moyen des bases CRT.
Quels sont les idempotents modulo 12 ?
Ce sont 0, 1, 4 et 9. Par exemple, 4 au carré vaut 16, qui laisse un reste de 4 dans la division par 12, et 9 au carré vaut 81, qui laisse 9. Comme 12 a deux facteurs premiers distincts, il y en a quatre.
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/idempotents-mod-n \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":12}'const res = await fetch("https://api.kit.forhosting.com/numth/idempotents-mod-n", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 12
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/idempotents-mod-n",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 12
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/idempotents-mod-n", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":12}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":12}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/idempotents-mod-n", 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
{
"n": 12
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.idempotents_mod_n",
"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_n | 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
Comprendre un résidu idempotent
Pour n égal à un, l’unique classe est représentée par zéro et reste idempotente. prime_power_factors montre la structure employée : douze devient quatre fois trois, et non deux fois deux fois trois.
Construction de la liste exhaustive
La limite d’un billion assure un temps prévisible et des entiers JSON sûrs.
Fournir le module et exploiter le résultat
Les valeurs supérieures à la limite publiée d’un billion sont également refusées. Vous pouvez vérifier que count vaut deux à la puissance du nombre de facteurs premiers distincts ; n égal à un est le cas particulier sans facteur et de compte un. Pour contrôler un x, vérifiez que le reste non négatif de x multiplié par x moins x modulo n vaut zéro. La réponse convient aux routines d’anneaux finis, aux tests de bibliothèques, aux exercices sur le théorème chinois et aux calculs modulaires. Envoyez n sous forme d’entier JSON positif ou de chaîne décimale simple. L’alias modulus est accepté pour les formulaires qui préfèrent un nom explicite. Une chaîne peut commencer par un signe plus ; fractions, notation exponentielle, préfixes hexadécimaux, espaces, nombres négatifs, zéro, valeurs absentes, tableaux et objets incorrects déclenchent invalid_input. Après une réussite, idempotents fournit l’ensemble complet croissant, count sa taille et prime_power_factors la décomposition copremière. Un appel API réussi coûte $0.002 ; l’outil gratuit du navigateur exécute exactement la même fonction pure.
Questions techniques
Quelles entrées sont refusées ?
Les valeurs absentes, non entières ou inférieures à un, les chaînes décimales mal formées et les modules au-dessus de la limite donnent invalid_input.