Factorisation par différence de carrés : a² − b² pour n impair
5959 est égal à 80² − 21², et cette différence révèle ses facteurs 59 et 101. Saisissez un nombre composé impair et obtenez les deux carrés, la paire de facteurs la plus proche et une égalité vérifiable à la main. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- N
- 5 959
- A
- 80
- B
- 21
- Facteur inférieur
- 59
- Facteur supérieur
- 101
Le calculateur de factorisation par différence de carrés reçoit un entier composé impair positif et trouve des entiers a et b tels que le carré de a moins le carré de b égale le nombre initial. Il renvoie aussi les facteurs non triviaux correspondants, puisque a² − b² vaut toujours (a − b)(a + b). La recherche commence près de la racine carrée : les facteurs obtenus sont donc aussi proches que possible et b est minimal. Les nombres pairs, les nombres premiers et 1 déclenchent une erreur explicite au lieu de la factorisation triviale 1 × n.
Transformez un nombre impair en deux carrés
L’identité algébrique a² − b² = (a − b)(a + b) relie une soustraction à la factorisation entière. Pour un entier composé impair n, toute paire de facteurs non triviaux contient deux nombres impairs. Si ces facteurs sont d et q, avec d ≤ q, alors a = (q + d) / 2 et b = (q − d) / 2.
Ces deux résultats sont entiers, car la somme et la différence de deux impairs sont paires. Le calculateur cherche d’abord un diviseur proche de la racine carrée de n, détermine son facteur complémentaire par division exacte, puis applique ces formules. Par exemple, 5959 possède la paire 59 × 101.
Leur demi-somme vaut 80 et leur demi-différence 21, d’où 80² − 21² = 6400 − 441 = 5959. La réponse contient n, a, b, les deux facteurs et une identité lisible. Le résultat constitue ainsi à la fois un calcul et une preuve concise, que vous pouvez vérifier en multipliant les facteurs ou en soustrayant les carrés.
Comprenez les résultats non triviaux et les erreurs
Tout entier positif impair admet formellement une différence de carrés si la paire 1 × n est autorisée : a vaudrait (n + 1) / 2 et b vaudrait (n − 1) / 2. Cette écriture ne révèle aucun facteur utile ; elle est donc volontairement exclue. Une réponse réussie exige deux facteurs supérieurs à un.
Ainsi, un nombre premier impair et le nombre 1 produisent une erreur d’entrée indiquant l’absence de décomposition non triviale. Les entiers pairs sont également refusés par le contrat, même si certains multiples de quatre peuvent être écrits comme différences de carrés : ce service vise précisément la factorisation des entiers impairs. Un carré parfait impair reste valide.
L’entrée doit être un entier positif fini respectant la limite publiée. Les décimales, valeurs négatives, chaînes incorrectes et valeurs excessives sont refusées, sans arrondi, troncature ni approximation.
Pourquoi la recherche est déterministe
L’algorithme part du plus grand entier impair inférieur ou égal à √n, puis teste les candidats impairs en ordre décroissant. Le premier diviseur exact rencontré est le plus grand facteur ne dépassant pas la racine carrée ; son complément est le plus petit facteur qui ne lui est pas inférieur. Il obtient donc la paire non triviale la plus rapprochée et la plus petite valeur non négative de b.
La boucle possède une borne inférieure fixe, tandis que l’entrée maximale déclarée limite le travail : elle ne peut pas continuer indéfiniment. Les calculs restent exacts dans l’intervalle d’entiers sûrs pris en charge. Le traitement ne contacte aucun service réseau, ne consulte aucune table de nombres premiers, ne lit pas l’heure, n’emploie aucun choix aléatoire et ne conserve aucun état entre les requêtes.
Il s’agit d’une division d’essai, pas d’un système général pour les très grands entiers : la plage bornée garantit une exécution pratique, et l’erreur explicite empêche de présenter 1 × n comme une factorisation pertinente d’un nombre premier.
Cas d’usage
Vérifiez un exercice d’algèbre
Contrôlez une écriture proposée n = a² − b² et affichez la paire de facteurs qu’implique l’identité.
Enseignez l’identité de factorisation
Montrez comment deux facteurs impairs donnent la demi-somme et la demi-différence utilisées pour a et b.
Trouvez une paire équilibrée
Obtenez les facteurs non triviaux les plus proches de √n, qui minimisent aussi la valeur non négative de b.
Questions fréquentes
Pourquoi les entiers pairs sont-ils refusés ?
Cette capacité accepte uniquement les entiers impairs. Certains nombres pairs sont des différences de carrés, mais ils sortent de ce traitement.
Pourquoi un nombre premier produit-il une erreur ?
Un nombre premier ne possède que la paire de facteurs positifs 1 × n. Le service exige deux facteurs supérieurs à un.
Quelle factorisation est choisie s’il en existe plusieurs ?
L’algorithme renvoie la paire de facteurs la plus proche de √n, donc le plus petit b non négatif.
Comment écrire 5959 comme différence de deux carrés ?
Partez de ses facteurs 59 et 101. La moitié de leur somme vaut 80 et la moitié de leur différence vaut 21, donc 80² − 21² = 6400 − 441 = 5959.
Est-ce que cela marche avec un carré parfait impair comme 81 ?
Oui. La paire de facteurs la plus proche de 81 est 9 et 9, ce qui donne un premier carré de 9² et un second de 0², puisque 9² − 0² = 81.
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/difference-of-squares-factor \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":5959}'const res = await fetch("https://api.kit.forhosting.com/numth/difference-of-squares-factor", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 5959
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/difference-of-squares-factor",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 5959
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/difference-of-squares-factor", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":5959}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":5959}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/difference-of-squares-factor", 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": 5959
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.difference_of_squares_factor",
"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.
Limites
max_n | 1000000000000 |
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
Comprenez les résultats non triviaux et les erreurs
Pour n = 81, la paire la plus proche est 9 × 9, ce qui donne a = 9, b = 0 et 9² − 0² = 81.
Pourquoi la recherche est déterministe
Une même entrée produit donc toujours le même JSON.
Questions techniques
Quel est le tarif ?
L’API coûte $0.002 par requête, et la version pour navigateur peut s’exécuter localement sur cette page.
b peut-il être nul ?
Oui. Lorsque n est un carré parfait composé impair, deux facteurs non triviaux égaux donnent b = 0.