ForHosting KIT · Mathématiques

Vérificateur Euler-Jacobi

561 est un pseudopremier d'Euler–Jacobi en base 2 : la puissance d'exposant 280 laisse 1, comme son symbole de Jacobi, alors que 561 est composé. Saisissez un composé impair et une base pour voir chaque valeur du verdict. 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
561
A
2
Vous obtenez
Gcd
1
Symbole de Jacobi
1
Exposant
280
Reste
1

Un pseudopremier d'Euler–Jacobi relativement à une base donnée est un entier composé impair qui obéit au critère d'Euler comme s'il était premier. Pour une base a première avec n, cela signifie que a élevé à (n moins un) sur deux est congruent au symbole de Jacobi de a sur n, modulo n. Tout premier impair qui ne divise pas a satisfait la même congruence, si bien que les composés qui passent encore sont les échecs intéressants d'un test à la Solovay–Strassen. Ce vérificateur répond précisément à cette question : étant donnés n composé impair et la base a, décider si n est un pseudopremier d'Euler–Jacobi pour a. La réponse rapporte le gcd, le symbole de Jacobi, la puissance modulaire, si la congruence tient, et un booléen vrai seulement lorsque la définition entière est remplie.

Qu'est-ce qu'un pseudopremier d'Euler–Jacobi, et en quoi il diffère des tests de Fermat et d'Euler

Le critère d'Euler affirme que si p est un premier impair et que a n'est pas divisible par p, alors a élevé à (p moins un) sur deux est congruent au symbole de Legendre de a sur p, modulo p. Le symbole de Jacobi (a/n) étend ce caractère quadratique des premiers impairs à tout entier positif impair n, d'où la tentation d'écrire la même congruence avec n à la place de p. Lorsque n est un premier impair, les deux symboles coïncident et la congruence est un théorème.

Lorsque n est impair et composé, la congruence peut encore tenir pour certaines bases bien que n ne soit pas premier. Ces n s'appellent des pseudopremiers d'Euler–Jacobi en base a, pourvu que gcd(a, n) vaille un. La condition est strictement plus forte que le test de Fermat (a élevé à n moins un congruent à un modulo n) et aussi plus forte que le test d'Euler faible, qui demande seulement que la puissance modulaire vaille plus un ou moins un.

L'illustration classique est trois cent quarante et un en base deux : c'est un pseudopremier de Fermat, deux élevé à cent soixante-dix vaut un modulo trois cent quarante et un, mais le symbole de Jacobi (2/341) vaut moins un, donc la congruence d'Euler–Jacobi échoue. Cinq cent soixante et un, le plus petit nombre de Carmichael, satisfait bien la congruence en base deux et est donc un pseudopremier d'Euler–Jacobi pour cette base. Quatre-vingt-onze en base dix est un autre exemple de cours que ce vérificateur confirme.

Contrat d'entrée, champs de réponse et comportement d'erreur

Si n est inférieur à neuf, pair ou premier, le gestionnaire rejette la requête : les pseudopremiers d'Euler–Jacobi sont des composés impairs par définition, et traiter un premier comme un pseudopremier manqué enseignerait la mauvaise leçon. Ces échecs de validation ne sont pas facturés. La chaîne criterion répète a^((n-1)/2) ≡ (a/n) (mod n) pour qu'une page ou un carnet affiche la définition à côté du verdict.

Lorsque gcd est supérieur à un, Jacobi vaut zéro et le couple n'est pas d'Euler–Jacobi même si une puissance accidentelle s'annule. Exemple : n égal à cinq cent soixante et un et a égal à deux donne jacobi un, remainder un et un drapeau vrai ; n égal à trois cent quarante et un et a égal à deux donne jacobi moins un, remainder un et un drapeau faux. Toute l'arithmétique est du BigInt exact ; il n'y a ni virgule flottante ni témoin aléatoire.

Où un vérificateur de pseudopremier d'Euler–Jacobi trouve son utilité

Les cours de théorie des nombres et les plateformes de concours utilisent un vérificateur de pseudopremier d'Euler–Jacobi pour que les élèves séparent les menteurs de Fermat des menteurs de Solovay–Strassen sans implémenter à la main la réciprocité de Jacobi ni l'exponentiation modulaire.

Les carnets de recherche et les balayages récréatifs appellent le même contrat lorsqu'ils veulent un oracle indépendant pour une liste publiée : cinq cent soixante et un, mille cent cinq, mille sept cent vingt-neuf et les autres exemples classiques en base deux doivent renvoyer vrai, tandis que trois cent quarante et un en base deux doit renvoyer faux.

Les ateliers de cryptographie qui présentent le test de primalité de Solovay–Strassen ont besoin d'un outil qui refuse n premier, car le point pédagogique est le composé qui imite le critère d'Euler, non de répéter que les premiers passent. Les équipes d'ingénierie qui écrivent des tests de propriétés pour leurs propres bibliothèques de Jacobi ou de puissance modulaire peuvent figer cette réponse comme contre-épreuve.

Préférez cet outil lorsque la question est strictement de savoir si un composé impair donné satisfait la congruence d'Euler–Jacobi pour une base donnée — non lorsque vous avez besoin d'une recherche sur toutes les bases, d'un test Fermat seul, d'un rapport de témoins Miller–Rabin ou de certificats pour des entiers de plusieurs milliers de bits.

Contrôles de cours des menteurs de Solovay–Strassen

Faites soumettre aux élèves n égal à 561 avec la base 2 et confirmez un drapeau Euler–Jacobi vrai, puis comparez avec 341 en base 2, qui n'est qu'un menteur de Fermat.

Oracle indépendant pour des tables publiées

Validez des listes hors ligne de pseudopremiers d'Euler–Jacobi contre une implémentation déterministe de Jacobi plus puissance modulaire.

Tests de propriétés pour bibliothèques de théorie des nombres

Figez gcd, le symbole de Jacobi, remainder et le booléen dans les tests unitaires afin qu'une routine locale de réciprocité ne s'écarte pas de la définition.

Qu'est-ce qui fait de n un pseudopremier d'Euler–Jacobi en base a ?

n doit être impair et composé, gcd(a, n) doit valoir 1, et a^((n−1)/2) doit être congruent au symbole de Jacobi (a/n) modulo n.

Pourquoi n pair et n premier sont-ils rejetés ?

Les pseudopremiers d'Euler–Jacobi sont définis comme des composés impairs qui imitent le critère d'Euler.

En quoi cela diffère-t-il d'un pseudopremier de Fermat ?

Un pseudopremier de Fermat en base a n'exige que a^{n−1} ≡ 1 (mod n). Le test d'Euler–Jacobi demande en plus que la racine carrée modulaire de cette condition de Fermat coïncide avec le symbole de Jacobi. 341 est un menteur de Fermat en base 2, mais pas un pseudopremier d'Euler–Jacobi en base 2.

561 est-il un pseudopremier d'Euler–Jacobi en base 2 ?

Oui. 2 élevé à la puissance 280, divisé par 561, laisse un reste de 1, et le symbole de Jacobi de 2 sur 561 vaut aussi 1 : la congruence tient bien que 561 soit composé. C'est le plus petit nombre de Carmichael.

Et si la base partage un facteur avec le nombre ?

Le nombre n'est alors pas pseudopremier d'Euler–Jacobi dans cette base, car la définition exige que les deux soient premiers entre eux. La réponse est non, et le diviseur commun est affiché pour en montrer la raison.

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/euler-pseudoprime-check

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/euler-pseudoprime-check \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"n":561,"a":2}'
{
  "n": 561,
  "a": 2
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "numth.euler_pseudoprime_check",
  "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.

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

Un n pair ou premier est rejeté avec invalid_input plutôt qu'un faux négatif trompeur, car la définition ne s'applique qu'aux composés impairs. Le même module déterministe s'exécute gratuitement dans le navigateur et sur le chemin API à $0.002 par appel réussi.

Qu'est-ce qu'un pseudopremier d'Euler–Jacobi, et en quoi il diffère des tests de Fermat et d'Euler

La capacité n'appelle jamais premier un composé ni pseudopremier un premier : les entrées premières ou paires sont des erreurs, et le booléen is_euler_jacobi_pseudoprime n'est vrai que lorsque n est un composé impair admis, le couple est premier entre soi et la congruence de Jacobi complète tient.

Contrat d'entrée, champs de réponse et comportement d'erreur

Envoyez un corps JSON en POST avec deux entiers obligatoires : n, le candidat composé impair (alias modulus et number), et a, la base (alias base). Chaque champ peut arriver comme nombre JSON ou comme chaîne de chiffres décimaux ; les valeurs doivent être des entiers complets dont la valeur absolue reste dans la plage sûre des entiers JavaScript, afin que la primalité de n soit tranchée par un jeu fixe de témoins Miller–Rabin, déterministe sur cette borne. Champs manquants, fractions, booléens, chaînes vides et valeurs trop grandes échouent avec invalid_input en nommant le champ. En cas de succès le corps renvoie n et a comme nombres, rapporte gcd et le booléen coprime, renvoie jacobi dans l'ensemble moins un, zéro ou un, donne exponent comme (n moins un) sur deux et remainder comme a élevé à cet exposant modulo n, pose congruence_holds lorsque remainder coïncide avec le symbole de Jacobi réduit au système de résidus modulo n, et pose is_euler_jacobi_pseudoprime seulement lorsque le couple est premier entre soi et que la congruence tient.

Où un vérificateur de pseudopremier d'Euler–Jacobi trouve son utilité

Comme la capacité est du parse de niveau A pur, chaque appel réussi est déterministe, hors ligne et tarifé à $0.002, sans jetons de modèle. Gardez n impair et composé, traitez invalid_input comme une correction côté client et figez remainder et jacobi dans les tests afin qu'une refactorisation future ne change pas en silence le résultat modulaire.

Que se passe-t-il si gcd(a, n) est supérieur à un ?

Le couple n'est pas d'Euler–Jacobi. La réponse renvoie encore gcd, jacobi 0 et le reste modulaire, mais is_euler_jacobi_pseudoprime est faux car la définition exige la coprimalité.

Combien coûte le vérificateur de pseudopremier d'Euler–Jacobi ?

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.

Consulter la documentation complète du KIT →