Vérificateur premier de Wieferich
1093 est un nombre premier de Wieferich : 2 puissance 1092 laisse un reste de 1 dans la division par 1093², soit 1194649. Saisissez un nombre premier pour voir ce reste et savoir si cette condition très rare est remplie. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Puissance (W)
- 1 093
- p au carré
- 1194649
- Reste
- 1
- Expression
- 2^{1092} ≡ 1 (mod 1194649)
Un nombre premier de Wieferich est un premier p pour lequel deux élevé à la puissance p moins un laisse un reste un lorsqu'on divise par p au carré. Cette congruence renforce l'énoncé habituel du petit théorème de Fermat selon lequel deux à la p moins un vaut un modulo p, et apparaît dans l'étude du dernier théorème de Fermat pour le premier cas, les lemmes d'élévation d'exposant et les contraintes sur les nombres parfaits impairs. Seuls deux tels premiers sont connus—1093 et 3511—si bien que la plupart des premiers courants échouent au test. Ce vérificateur accepte un seul premier p, vérifie la primalité, calcule la puissance modulaire exacte avec une arithmétique BigInt déterministe et indique si le reste vaut un, avec p au carré et une courte chaîne de congruence.
Qu'est-ce qu'un premier de Wieferich et pourquoi le module est p au carré
Le petit théorème de Fermat affirme que si p est premier et ne divise pas la base a, alors a élevé à p moins un est congruent à un modulo p. Pour a égal à deux, cela revient à deux à la p moins un congruent à un modulo p pour tout premier impair p. Un premier de Wieferich demande la même congruence un module plus haut : deux à la p moins un doit être congruent à un modulo p au carré, et non seulement modulo p.
De façon équivalente, l'ordre de deux dans le groupe multiplicatif des unités modulo p au carré divise p moins un de sorte que le quotient de Fermat de deux en base p s'annule. Ce facteur p supplémentaire dans le module rend la condition extrêmement rare. Des recherches informatiques exhaustives ont examiné des premiers bien au-delà de tout exemple de cours, et les seules solutions connues restent p égal à 1093 et p égal à 3511.
Le premier deux échoue : deux à la première puissance vaut deux, et deux modulo quatre vaut deux, pas un. Des premiers ordinaires comme trois, cinq, sept et onze produisent des restes autres que un lorsque deux à la p moins un est réduit modulo p au carré.
Où un vérificateur de premier de Wieferich apporte de la valeur
Les cours de théorie des nombres et les plateformes d'entraînement aux concours utilisent un vérificateur de premier de Wieferich pour que les apprenants vérifient les affirmations des manuels sur les deux exemples connus sans implémenter à la main l'exponentiation modulaire et sans confondre le module p avec p au carré. Les carnets de recherche et les scripts de mathématiques récréatives appellent le même contrat pour balayer des premiers candidats ou valider des tables hors ligne contre un oracle indépendant.
Les sites de contenu qui se classent sur vérificateur de premier de Wieferich ou sur le quotient de Fermat bénéficient d'un outil en direct dont le chemin gratuit coïncide octet par octet avec l'automatisation payante. Les équipes d'ingénierie qui enseignent ou démontrent la théorie des nombres cryptographique peuvent montrer comment une congruence ressemblant au petit théorème de Fermat devient extrêmement rare une fois le module élevé au carré, renforçant pourquoi les hypothèses modulaires naïves exigent un énoncé soigné.
Préférez cet outil lorsque la question est strictement de savoir si un premier donné satisfait deux à la p moins un congruent à un modulo p au carré—non lorsque vous avez besoin d'une recherche de tous les premiers d'un intervalle, d'un service de factorisation complète ou de certificats pour des entiers de plusieurs milliers de bits.
Cas d’usage
Oracle indépendant pour carnets de recherche
Validez des tables hors ligne ou des balayages scriptés de premiers candidats contre une implémentation déterministe de puissance modulaire.
Questions fréquentes
Qu'est-ce qu'un nombre premier de Wieferich ?
Un premier p tel que 2^{p−1} ≡ 1 (mod p²). Seuls 1093 et 3511 sont connus. Le test est plus strict que le petit théorème de Fermat, qui n'exige que la congruence modulo p.
1093 est-il un nombre premier de Wieferich ?
Oui. Le carré de 1093 vaut 1194649, et 2 puissance 1092 laisse un reste de 1 dans la division par ce carré, ce qui est exactement la condition de Wieferich. C'est l'un des deux seuls exemples connus.
Combien de nombres premiers de Wieferich connaît-on ?
Seulement deux : 1093 et 3511. Des recherches par ordinateur ont examiné des nombres premiers bien plus grands que tout exemple scolaire sans en trouver un troisième : presque tout premier testé échouera.
2 est-il un nombre premier de Wieferich ?
Non. Pour le premier 2, la puissance vaut 2 puissance 1, soit 2, et 2 divisé par 4 laisse un reste de 2, et non de 1. La condition n'est pas remplie.
En quoi un premier de Wieferich diffère-t-il du petit théorème de Fermat ?
Le petit théorème de Fermat affirme que 2 puissance p moins 1 laisse un reste de 1 dans la division par p, pour tout premier impair. Un premier de Wieferich exige ce reste de 1 modulo le carré de p.
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/wieferich-prime \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"p":1093}'const res = await fetch("https://api.kit.forhosting.com/numth/wieferich-prime", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"p": 1093
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/wieferich-prime",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"p": 1093
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/wieferich-prime", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"p":1093}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"p":1093}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/wieferich-prime", 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
{
"p": 1093
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.wieferich_prime",
"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
Une entrée composée est rejetée avec invalid_input plutôt qu'un faux négatif, afin que les scripts de devoirs et les carnets de recherche ne traitent jamais un composé comme un premier non-Wieferich par accident.
Qu'est-ce qu'un premier de Wieferich et pourquoi le module est p au carré
Ce point de terminaison encode exactement cette définition : il n'assouplit jamais le module vers p, ne substitue jamais un témoin probabiliste et ne renvoie jamais is_wieferich true sauf si la puissance modulaire complète vaut un.
Contrat d'entrée, champs de réponse et gestion des erreurs
De façon critique, p doit être premier. Si le candidat est composé—par exemple quatre, neuf ou quinze—le gestionnaire rejette la requête avec un message qui nomme la valeur et indique qu'elle n'est pas première. Cette conception correspond à la définition mathématique (les premiers de Wieferich sont une sous-classe des premiers) et empêche les clients d'interpréter un échec de composé comme un false réussi. Envoyez un corps JSON en POST avec le champ entier obligatoire p (alias prime et n). La valeur peut arriver comme nombre JSON ou comme chaîne de chiffres décimaux ; ce doit être un entier complet au moins égal à deux et au plus au plafond des entiers sûrs JavaScript. Fractions, booléens, chaînes vides et champs manquants échouent avec invalid_input avant toute exponentiation. En cas de succès le corps inclut p renvoyé comme nombre ; p_squared comme la chaîne décimale exacte de p fois p ; remainder comme la chaîne décimale exacte de deux à la p moins un modulo p au carré ; is_wieferich comme booléen vrai seulement lorsque remainder vaut un ; et expression, une congruence lisible.
Où un vérificateur de premier de Wieferich apporte de la valeur
Comme la capacité est parse pure de niveau A, chaque appel réussi est déterministe, hors ligne et tarifé à $0.002 sans jetons de modèle. Gardez p premier et dans la plage sûre publiée, traitez invalid_input comme une correction côté client et épinglez la chaîne remainder dans les tests pour qu'une refactorisation future ne change pas silencieusement le résultat modulaire.
Cas d'intégration
Vérifications en classe des deux exemples connus
Laissez les étudiants soumettre p égal à 1093 ou 3511 et confirmer que is_wieferich est true, puis contraster avec des premiers ordinaires comme 3, 5 ou 7.
Page SEO et widget gratuit du navigateur
Proposez une page de vérificateur de premier de Wieferich dont le chemin gratuit coïncide avec le remainder et l'indicateur de l'API pour le même premier p.
Questions techniques
Quelle entrée le vérificateur accepte-t-il ?
Un seul entier premier p ≥ 2 (champ p, alias prime ou n), comme nombre JSON ou chaîne de chiffres dans la plage des entiers sûrs. Non-premiers et valeurs mal formées échouent avec invalid_input.
Que se passe-t-il si p n'est pas premier ?
La tâche échoue avec invalid_input. Les premiers de Wieferich ne sont définis que pour les premiers ; les composés sont rejetés plutôt que renvoyés comme is_wieferich false.
2 est-il un premier de Wieferich ?
Non. 2^{1} = 2 et 2 mod 4 vaut 2, pas 1, donc is_wieferich est false pour p égal à 2.
Combien coûte le vérificateur de premier de Wieferich ?
L'outil navigateur est gratuit. Les requêtes API utilisent le solde KIT prépayé à $0.002 par appel réussi ; une entrée invalide n'est pas facturée.