Vérificateur de pseudopremiers de Lucas
Repérez les composés impairs qui trompent le test de Lucas : avec P égal à 1 et Q égal à −1, le composé 323 le passe et devient le plus petit pseudopremier de Fibonacci. Le résultat indique aussi D, le symbole de Jacobi et l'indice testé. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- N
- 323
- P
- 1
- Q
- -1
- D
- 5
- Symbole de Jacobi
- -1
- Indice de U
- 324
- U modulo n
- 0
Un pseudopremier de Lucas est un entier composé impair qui satisfait encore la même congruence de la suite U de Lucas que tout nombre premier doit respecter pour des paramètres P et Q donnés. Les cryptographes, les étudiants en théorie des nombres et les auteurs de tests de primalité utilisent ce contrôle pour séparer les vrais premiers des composés qui trompent une seule couche de Lucas — précisément le mode de défaillance que la famille Baillie–PSW est conçue pour détecter lorsqu'elle est combinée à un test de Fermat fort. Ce vérificateur accepte n avec P et Q, construit le discriminant D égal à P au carré moins quatre Q, rejette la requête lorsque D est un carré parfait, calcule le symbole de Jacobi de D sur n, évalue U à l'indice n moins ce symbole modulo n via une échelle de doublement binaire, et indique si la congruence tient et si n est composé.
Qu'est-ce qu'un pseudopremier de Lucas et comment fonctionne le test U
Les suites de Lucas U_k(P, Q) et V_k(P, Q) sont les récurrences entières définies par U_0 égal à zéro, U_1 égal à un, V_0 égal à deux, V_1 égal à P, et le pas linéaire commun X_k égal à P fois X_{k-1} moins Q fois X_{k-2}. Leur discriminant caractéristique est D égal à P au carré moins quatre Q. Pour un entier impair n supérieur à un et premier avec Q fois D, soit epsilon le symbole de Jacobi de D sur n, qui vaut plus un ou moins un.
Tout premier impair p satisfaisant la coprimalité obéit à U_{p moins epsilon} congruent à zéro modulo p. Un composé impair positif n qui satisfait encore la même congruence est appelé pseudopremier de Lucas de paramètres P et Q. Le cas classique de Fibonacci utilise P égal à un et Q égal à moins un, de sorte que U_k est la suite de Fibonacci et D vaut cinq ; le plus petit pseudopremier de Fibonacci est trois cent vingt-trois.
Des variantes plus fortes (Lucas extra-fort, Frobenius) ajoutent des conditions sur V, mais cette capacité implémente la définition standard uniquement en U utilisée dans les manuels et notes de recherche sur les pseudopremiers de Lucas de types spéciaux. Savoir si un candidat est seulement un premier probable ou un vrai pseudopremier vous aide à décider si une seule couche de Lucas suffit pour votre budget de risque ou s'il faut l'empiler avec un test fort en base deux comme dans Baillie–PSW.
Cas d’usage
Régressions de bibliothèques de primalité
Figez des pseudopremiers de Lucas et des premiers connus en CI pour que votre échelle modulaire U_k ne dérive jamais de la congruence classique.
Questions fréquentes
Qu'est-ce qu'un pseudopremier de Lucas de paramètres P et Q ?
Un n composé impair premier avec Q·D (D=P²−4Q) tel que U_{n−(D/n)}(P,Q) ≡ 0 (mod n), où (D/n) est le symbole de Jacobi. Les premiers qui passent le même test ne sont pas appelés pseudopremiers.
Pourquoi le vérificateur rejette-t-il un discriminant carré parfait ?
Lorsque D = P² − 4Q est un carré parfait non négatif, les suites de Lucas dégénèrent et la congruence de primalité n'a plus de sens.
323 est-il un pseudopremier de Lucas ?
Oui. Avec P égal à 1 et Q égal à −1, le cas de Fibonacci, D vaut 5, le symbole de Jacobi vaut −1 et U à l'indice 324 est divisible par 323. Comme 323 est composé, c'est un pseudopremier de Lucas, le plus petit de Fibonacci.
Que se passe-t-il si je teste un vrai nombre premier comme 13 ?
Il passe le test de Lucas mais n'est pas signalé comme pseudopremier, car un pseudopremier doit être composé. Le résultat vous dit séparément si la congruence est vérifiée et si le nombre est composé.
Le test de Lucas suffit-il seul à prouver qu'un nombre est premier ?
Non. Certains composés passent une seule couche de Lucas ; c'est pourquoi la méthode Baillie–PSW l'associe à un test de Fermat fort en base 2. Cette vérification vous montre si votre candidat fait partie de ces composés.
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/lucas-pseudoprime-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":"323","P":"1","Q":"-1"}'const res = await fetch("https://api.kit.forhosting.com/numth/lucas-pseudoprime-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": "323",
"P": "1",
"Q": "-1"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/lucas-pseudoprime-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": "323",
"P": "1",
"Q": "-1"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/lucas-pseudoprime-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":"323","P":"1","Q":"-1"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":"323","P":"1","Q":"-1"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/lucas-pseudoprime-check", 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": "323",
"P": "1",
"Q": "-1"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.lucas_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.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
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
Qu'est-ce qu'un pseudopremier de Lucas et comment fonctionne le test U
Lorsque D est un carré parfait non nul, la forme fermée de type Binet s'effondre en une pure progression géométrique et les suites perdent les propriétés arithmétiques qui les rendent utiles pour les tests de primalité ; cet endpoint refuse donc ces paramètres avec invalid_input plutôt que de renvoyer un zéro dénué de sens.
Contrat d'entrée, champs de réponse et erreurs
Après analyse, le gestionnaire forme D égal à P au carré moins quatre Q et lève une erreur si D est un carré parfait non négatif, zéro inclus, car la suite dégénère. Un vrai premier comme treize avec les mêmes paramètres passe le test de Lucas mais n'est pas étiqueté comme pseudopremier. Envoyez un corps JSON avec trois champs entiers obligatoires : n, le candidat impair au moins trois ; P, le premier paramètre de Lucas ; et Q, le second. Chaque champ peut arriver comme nombre JSON ou comme chaîne d'entier décimal. Non-entiers, champs manquants, n pair et n inférieur à trois échouent avec invalid_input en nommant le problème. En cas de succès le corps renvoie n, P, Q et D en chaînes décimales ; jacobi est le symbole de Jacobi de D sur n comme nombre dans l'ensemble moins un, zéro ou un ; u_index vaut n moins jacobi lorsque le symbole est non nul ; u_mod_n est U à cet indice réduit modulo n ; gcd_ok est vrai lorsque n est premier avec Q fois D ; passes_lucas_test est vrai exactement lorsque la congruence U tient sous les conditions classiques ; is_prime est un verdict déterministe Miller–Rabin dans la plage prise en charge ; et is_lucas_pseudoprime n'est vrai que lorsque n est composé, gcd_ok tient, le symbole de Jacobi est non nul et la congruence tient encore. Le champ method est toujours la chaîne lucas_u_sequence pour que les clients figent l'algorithme dans les journaux. Exemple : n égal à trois cent vingt-trois, P égal à un, Q égal à moins un donne D égal à cinq, jacobi égal à moins un, u_index égal à trois cent vingt-quatre, u_mod_n égal à zéro, is_prime faux et is_lucas_pseudoprime vrai. La validation échouée n'est pas facturée ; les appels réussis coûtent le prix de base publié $0.002 sur la voie API.
Où une API de pseudopremiers de Lucas justifie son coût
Les plateformes de cours et de concours ont besoin d'un oracle déterministe qui marque correctement les pseudopremiers de Fibonacci et de Lucas généraux sans que les élèves réécrivent à la main un code de récurrence modulaire qui déborde les entiers soixante-quatre bits. Les auteurs de bibliothèques qui livrent des couches Baillie–PSW ou purement Lucas s'appuient sur un vérificateur de référence pour tester en régression leur échelle U_k face à des composés célèbres comme trois cent vingt-trois avant d'affirmer zéro contre-exemple connu. Les sites de contenu qui se positionnent sur le vérificateur de pseudopremier de Lucas gagnent un outil en direct dont le chemin navigateur gratuit coïncide avec l'automatisation payante sur le même module pur. Les supports de cryptographie peuvent montrer qu'un seul test algébrique n'est pas un certificat de primalité en exhibant un composé qui renvoie encore passes_lucas_test vrai alors que is_prime est faux. Les carnets de recherche qui balayent des familles de paramètres à la recherche de nouveaux pseudopremiers de Lucas de types spéciaux profitent d'une API de parse compacte qui renvoie l'état intermédiaire complet — D, Jacobi, indice et résidu — pour filtrer et tracer sans réimplémenter la réciprocité quadratique. Comme l'implémentation est pure parse de niveau A, chaque appel réussi coûte $0.002 sans jetons de modèle ni réseau sortant.
Cas d'intégration
Exercices de cours sur les PSP de Fibonacci et Lucas
Laissez les élèves soumettre n avec P=1, Q=−1 (ou d'autres paramètres) et vérifier is_lucas_pseudoprime face aux listes de manuels telles que 323.
Balayages de paramètres en recherche
Parcourez des familles de P et Q à la recherche de n composés qui satisfont encore U_{n−ε} ≡ 0 (mod n), en utilisant D, jacobi et u_mod_n dans la réponse.
Questions techniques
323 est-il un pseudopremier de Lucas ?
Oui pour les paramètres de Fibonacci P=1, Q=−1 (D=5). Il est composé (17×19) et pourtant U_{324} ≡ 0 (mod 323), donc is_lucas_pseudoprime est vrai.
Un vrai premier compte-t-il comme pseudopremier de Lucas ?
Non. Les vrais premiers qui satisfont la congruence U mettent passes_lucas_test à vrai et is_prime à vrai, mais is_lucas_pseudoprime reste faux par définition.
Combien coûte le vérificateur de pseudopremiers de Lucas ?
L'outil 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.