ForHosting KIT · Mathématiques

Compter les racines primitives modulo n

Modulo 18, il existe exactement 2 racines primitives, la valeur de l'indicatrice d'Euler appliquée deux fois. Saisissez un module et voyez combien de générateurs il possède, ou un avis clair s'il n'en a aucun, comme pour 8. Gratuit dans votre navigateur.

  • Gratuit
  • Fonctionne dans votre navigateur
  • Sans inscription
  • Vos données restent sur votre appareil
Utilisez-le depuis WebAPIE-mailTelegramApp bientôt
Si vous saisissez
N
18
Vous obtenez
Module
18
Nombre de racines primitives
2

Ce compteur détermine si un module admet des racines primitives et, le cas échéant, renvoie leur nombre exact. Le résultat est l'indicatrice d'Euler de l'indicatrice d'Euler du module, notée phi(phi(n)). Le calculateur couvre toute la famille des modules admissibles sans supposer que l'entrée est première. Si le module appartient à une classe dépourvue de racines primitives, il signale clairement une entrée incorrecte au lieu de renvoyer un zéro trompeur.

Ce que représente le nombre obtenu

Une racine primitive modulo n est une classe de résidus dont les puissances successives engendrent toutes les classes inversibles modulo n. Dans le langage des groupes, il s'agit d'un générateur du groupe multiplicatif des entiers modulo n. Cet outil répond à une question précise : combien de classes de résidus distinctes engendrent ce groupe ?

Il ne dresse pas la liste des générateurs et ne recherche pas le plus petit. Lorsqu'une racine primitive existe, le groupe multiplicatif est cyclique et compte phi(n) éléments. Un groupe cyclique d'ordre phi(n) possède exactement phi(phi(n)) générateurs, ce qui constitue le résultat renvoyé.

Par exemple, modulo 18, les résidus inversibles forment un groupe cyclique d'ordre 6 et phi(6) vaut 2 : il existe donc deux racines primitives. Le dénombrement porte sur les classes modulo n, et non sur des représentants entiers quelconques : deux valeurs séparées par un multiple de n décrivent la même racine. Cette distinction est utile dans les preuves, les exercices et les algorithmes où la taille de l'ensemble générateur importe davantage que ses éléments particuliers.

Les modules qui possèdent des racines primitives

Tout module positif ne possède pas nécessairement de racines primitives. La classification complète affirme qu'elles existent uniquement lorsque n vaut 2, 4, une puissance p^k d'un nombre premier impair ou le double d'une telle puissance, 2p^k. Le calculateur factorise le module fourni et applique ce théorème avant d'effectuer le dénombrement.

Cette étape est indispensable, car évaluer phi(phi(n)) pour un module non admissible produit un entier positif alors qu'aucun générateur n'existe. Ainsi, phi(8) vaut 4 et phi(4) vaut 2, mais il n'existe aucune racine primitive modulo 8 ; renvoyer 2 serait mathématiquement faux. Cette capacité rejette donc ce module avec une erreur explicite.

Les modules premiers supérieurs à deux correspondent au cas particulier p^1, tandis que des nombres composés comme 9, 14, 18 et 25 sont également admissibles. En revanche, 8, 12, 15 et 20 ne le sont pas. Le test de classification reste distinct de la formule afin que la sortie désigne toujours un ensemble réel de racines primitives.

Utiliser et interpréter le résultat

Envoyez un entier n compris entre 2 et 1,000,000,000,000. L'entrée doit être un entier numérique, et non une chaîne décimale, une fraction, une approximation scientifique, une valeur négative ou un entier JavaScript non sûr. La borne supérieure garantit une factorisation finie et prévisible tout en couvrant de nombreux calculs pédagogiques et pratiques.

L'algorithme emploie une division d'essai déterministe pour obtenir la structure en puissances premières, applique le théorème d'existence, calcule phi(n) à partir des facteurs premiers distincts, puis calcule phi(phi(n)). Il n'utilise ni réseau ni recherche aléatoire : une même entrée donne toujours la même sortie.

Vérifier un exercice de théorie des nombres

Contrôlez le nombre attendu de générateurs avant d'énumérer les racines primitives à la main.

Dimensionner une recherche de générateurs

Déterminez combien de classes de résidus valides une recherche exhaustive doit trouver.

Valider un module admissible

Rejetez un module dont le groupe multiplicatif n'est pas cyclique avant qu'un algorithme ne suppose l'existence d'une racine primitive.

Quelle formule le calculateur utilise-t-il ?

Pour un module qui admet des racines primitives, il renvoie phi(phi(n)), où phi est l'indicatrice d'Euler.

Pourquoi l'outil signale-t-il une erreur au lieu de zéro ?

Le contrat distingue un cas mathématique non admissible d'un dénombrement valide. Un module sans racines primitives est donc signalé comme entrée incorrecte.

Quels modules admettent des racines primitives ?

Exactement 2, 4, les puissances p^k d'un premier impair et le double de ces puissances, 2p^k.

Cet outil énumère-t-il les racines primitives ?

Non. Il indique seulement combien de classes de résidus sont des racines primitives modulo n.

Les modules premiers sont-ils acceptés ?

Oui. Tout module premier possède des racines primitives, y compris 2 ; les premiers impairs relèvent du cas des puissances premières impaires.

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.

POSThttps://api.kit.forhosting.com/numth/count-primitive-roots

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é.

curl -X POST https://api.kit.forhosting.com/numth/count-primitive-roots \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"n":18}'
{
  "n": 18
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "numth.count_primitive_roots",
  "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.

par requête$0.002

Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.

HTTPCodeSignification
401unauthorizedClé API absente ou invalide : vérifiez l’en-tête Authorization.
402insufficient_balanceSolde insuffisant : rechargez votre compte pour lancer cette tâche.
404unknown_typeType de tâche inconnu : vérifiez le champ type de votre requête.
429rate_limitedTrop de requêtes : ralentissez la cadence, puis réessayez.

Utiliser et interpréter le résultat

La réponse le reprend dans modulus et fournit le nombre entier exact dans primitive_root_count. Une réponse invalid_input indiquant l'absence de racines primitives est une conclusion mathématique sur le module, pas une panne temporaire. Pour connaître les racines elles-mêmes, utilisez un outil de recherche ou d'énumération ; cet endpoint renvoie volontairement seulement la cardinalité. Chaque requête API coûte $0.002 et emploie exactement la même arithmétique.

Combien coûte une requête API ?

Chaque requête API coûte $0.002.

Consulter la documentation complète du KIT →