ForHosting KIT · Outils pour développeurs

Test de primalité de Proth avec témoin

Le test de primalité de Proth contrôle un nombre écrit sous la forme k × 2^n + 1 en appliquant le théorème de Proth au témoin que vous fournissez.

● BetaGratuit · dans votre navigateur
Utilisez-le depuis WebAPIE-mailTelegramApp bientôt

Il vérifie d’abord que k est positif et impair, que n est positif et que k est inférieur à 2^n. Il calcule ensuite exactement la puissance modulaire requise. Une congruence réussie prouve que le nombre de Proth est premier ; un témoin négatif reste indécis, sauf s’il révèle un facteur.

Saisissez un véritable nombre de Proth et un témoin

Un nombre de Proth possède exactement la forme N = k × 2^n + 1, où k est un entier positif impair, n un entier positif et k est strictement inférieur à 2^n. Chaque condition est indispensable. Le calculateur reçoit k et le témoin sous forme de texte décimal afin de préserver les grandes valeurs sans arrondi en virgule flottante. Saisissez n comme entier compris entre 1 et 10,000. L’outil construit N au lieu de vous demander de le fournir séparément, ce qui empêche toute divergence entre le nombre annoncé et ses paramètres de définition. Il vérifie également que le témoin se situe strictement entre 1 et N. Une valeur paire de k, une valeur non positive ou un k supérieur ou égal à 2^n provoque un rejet explicite : le théorème n’est pas appliqué lorsque ses hypothèses ne sont pas satisfaites. Le nombre, l’exposant, le témoin et le résidu sont renvoyés sous forme de chaînes décimales lorsque nécessaire, afin que vous puissiez auditer le calcul et les copier dans un autre outil d’arithmétique exacte.

Comprenez précisément ce que prouve la congruence

Pour un nombre de Proth valide N, le théorème indique que N est premier s’il existe un entier a tel que a^((N−1)/2) soit congru à −1 modulo N. Le témoin fourni joue le rôle de a. Le calculateur évalue cette puissance modulaire par exponentiation binaire, sans construire au préalable l’immense puissance ordinaire. Dans le résultat, `residue` désigne le plus petit résidu non négatif et `passes_test` vaut true exactement lorsqu’il est égal à N−1, représentation modulaire de −1. Dans ce cas, `prime_proven` vaut true et le verdict est `prime` : sous les conditions de Proth déjà vérifiées, il s’agit d’un certificat déterministe, et non d’une simple indication de nombre probablement premier. La réponse fournit l’exposant exact (N−1)/2 afin que vous puissiez reproduire la congruence indépendamment. L’algorithme emploie uniquement des opérations entières, ne choisit aucun témoin au hasard et ne consulte ni table ni service distant. Une même entrée produit donc toujours le même résultat et expose toutes les valeurs importantes du théorème.

Interprétez correctement l’échec d’un témoin

Un témoin qui ne produit pas −1 ne démontre pas, à lui seul, que le nombre est composé. Il signifie seulement que ce témoin précis ne satisfait pas la condition suffisante du théorème de Proth. Le calculateur renvoie donc `inconclusive`, et non `composite`, lorsque le résidu diffère et que le témoin est premier avec N. Vous pouvez alors essayer un autre témoin choisi selon un critère mathématique ou employer une autre méthode déterministe de primalité. Une exception est utile : avant d’interpréter la congruence, l’outil calcule le plus grand commun diviseur du témoin et de N. Si cette valeur est un facteur propre, le verdict devient définitivement `composite` et le facteur est renvoyé. Cette distinction évite de transformer à tort un théorème à sens unique en test réciproque invalide. Elle facilite aussi l’automatisation : acceptez `prime` comme preuve, rejetez `composite` lorsqu’un facteur apparaît et dirigez `inconclusive` vers un autre test au lieu de le traiter silencieusement comme un échec définitif.

Vérifier un candidat issu d’une recherche

Contrôlez une paire k et n générée avec un témoin choisi avant d’enregistrer le candidat comme premier démontré.

Enseigner le théorème de Proth

Présentez l’exposant exact, le résidu modulaire et la différence entre une preuve et un témoin indécis.

Ajouter un contrôle déterministe

Validez les conditions de Proth et orientez les résultats premiers, composés ou indécis sans calcul en virgule flottante.

Quel est le prix d’une requête API ?

Chaque requête API coûte $0.002. Le calcul peut aussi être exécuté gratuitement dans le navigateur.

Quelles conditions définissent un nombre de Proth ?

Il doit être égal à k × 2^n + 1, avec k positif et impair, n positif et k < 2^n.

L’échec d’un témoin prouve-t-il que le nombre est composé ?

Non. Le résultat est normalement indécis. Il n’est déclaré composé que si le témoin révèle un facteur commun non trivial.

Pourquoi k et le témoin sont-ils saisis comme chaînes ?

Les chaînes décimales préservent sans arrondi les entiers dépassant la plage numérique sûre de JavaScript.

Un résultat positif est-il probabiliste ?

Non. Une fois les conditions de Proth validées, la congruence requise constitue une preuve de primalité.

Les témoins sont-ils choisis automatiquement ?

Non. Vous fournissez le témoin et la capacité teste cette valeur exacte de manière déterministe.

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/proth-test

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/proth-test \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"k":"3","n":3,"witness":"3"}'
{
  "k": "3",
  "n": 3,
  "witness": "3"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "numth.proth_test",
  "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_n10000
max_decimal_digits3011
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.

Consulter la documentation complète du KIT →