Differenza di quadrati: fattorizzare n dispari come a² − b²
5959 è uguale a 80² − 21², e questa differenza rivela i suoi fattori 59 e 101. Inserisca un numero composto dispari e ottenga i due quadrati, la coppia di fattori più vicina e un'uguaglianza verificabile a mano. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- N
- 5959
- A
- 80
- B
- 21
- Fattore minore
- 59
- Fattore maggiore
- 101
Il calcolatore di fattorizzazione per differenza di quadrati riceve un intero composto dispari positivo e trova gli interi a e b per cui il quadrato di a meno il quadrato di b coincide con il numero iniziale. Restituisce anche i fattori non banali corrispondenti, poiché a² − b² equivale sempre a (a − b)(a + b). La ricerca inizia vicino alla radice quadrata, quindi i fattori indicati sono il più possibile vicini e b è minimo. Numeri pari, primi e 1 generano un errore chiaro anziché la fattorizzazione banale 1 × n.
Trasformi un numero dispari in due quadrati
L’identità algebrica a² − b² = (a − b)(a + b) collega una sottrazione alla fattorizzazione intera. Per un n composto dispari, ogni coppia di fattori non banali è formata da due numeri dispari. Se tali fattori sono d e q, con d ≤ q, allora a = (q + d) / 2 e b = (q − d) / 2.
Entrambi i risultati sono interi, perché somma e differenza di due dispari sono pari. Il calcolatore trova innanzitutto un divisore vicino alla radice quadrata di n, ricava il fattore complementare tramite divisione esatta e applica le formule. Per esempio, 5959 ha la coppia 59 × 101.
La loro semisomma è 80 e la semidifferenza è 21; quindi 80² − 21² = 6400 − 441 = 5959. La risposta comprende n, a, b, entrambi i fattori e un’identità leggibile. Il risultato è pertanto sia un calcolo sia una breve dimostrazione, verificabile moltiplicando i fattori oppure sottraendo i quadrati.
Comprenda risultati non banali ed errori
Ogni intero positivo dispari ammette formalmente una differenza di quadrati se si consente la coppia 1 × n: a sarebbe (n + 1) / 2 e b sarebbe (n − 1) / 2. Tale forma non rivela fattori utili, perciò questa capacità la esclude intenzionalmente. Per una risposta valida occorrono due fattori maggiori di uno.
Di conseguenza, un primo dispari e il numero 1 restituiscono un errore di input che segnala l’assenza di una scomposizione non banale. Un quadrato perfetto dispari rimane valido. L’input deve essere un intero positivo finito entro il limite pubblicato.
Frazioni decimali, valori negativi, stringhe errate e numeri troppo grandi vengono respinti senza arrotondamenti, troncamenti o approssimazioni.
Perché la ricerca è deterministica
L’implementazione parte dal massimo intero dispari non superiore a √n e verifica i candidati dispari in ordine decrescente. Il primo divisore esatto è il massimo fattore che non supera la radice quadrata; il suo complemento è il minimo fattore che non scende sotto di essa. Si ottengono così la coppia non banale più vicina e il minimo valore non negativo di b.
Il ciclo ha un estremo inferiore fisso e l’input massimo dichiarato ne limita il lavoro, quindi non può proseguire indefinitamente. L’aritmetica resta esatta nell’intervallo sicuro supportato. Il processo non contatta servizi di rete, non consulta tabelle di primi, non legge l’ora, non usa scelte casuali e non conserva stato tra richieste.
Si tratta di divisione per tentativi, non di un sistema generale per interi enormi: l’intervallo limitato rende pratica l’esecuzione nel browser e ai margini della rete, mentre l’errore esplicito evita che la coppia 1 × n faccia apparire significativa la fattorizzazione di un primo.
Casi d'uso
Verifichi un esercizio di algebra
Controlli una rappresentazione proposta n = a² − b² e visualizzi la coppia di fattori implicata dall’identità.
Insegni l’identità di fattorizzazione
Mostri come due fattori dispari producono la semisomma e la semidifferenza usate per a e b.
Trovi una coppia bilanciata
Ottenga i fattori non banali più vicini a √n, che minimizzano anche il valore non negativo di b.
Domande frequenti
Perché gli interi pari vengono rifiutati?
Questa capacità accetta soltanto interi dispari. Alcuni pari sono differenze di quadrati, ma non rientrano in questo flusso.
Perché un numero primo genera un errore?
Un primo possiede soltanto la coppia di fattori positivi 1 × n. Il servizio richiede due fattori maggiori di uno.
Quale fattorizzazione viene restituita se ne esistono più d’una?
L’algoritmo restituisce la coppia più vicina a √n, ottenendo il minimo b non negativo.
Come scrivo 5959 come differenza di due quadrati?
Parta dai suoi fattori 59 e 101. La metà della loro somma è 80 e la metà della loro differenza è 21, quindi 80² − 21² = 6400 − 441 = 5959.
Funziona con un quadrato perfetto dispari come 81?
Sì. La coppia di fattori più vicina di 81 è 9 e 9, che dà un primo quadrato di 9² e un secondo di 0², perché 9² − 0² = 81.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo 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)Esempio di richiesta
{
"n": 5959
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.difference_of_squares_factor",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_n | 1000000000000 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Comprenda risultati non banali ed errori
Anche gli interi pari sono esclusi dal contratto, sebbene alcuni multipli di quattro siano differenze di quadrati: questo endpoint è dedicato alla fattorizzazione degli interi dispari. Per n = 81, la coppia più vicina è 9 × 9, da cui a = 9, b = 0 e 9² − 0² = 81.
Perché la ricerca è deterministica
Input identici producono sempre lo stesso JSON.
Domande tecniche
Quanto costa?
L’API costa $0.002 per richiesta; la versione per browser può essere eseguita localmente in questa pagina.
b può essere zero?
Sì. Quando n è un quadrato perfetto composto dispari, fattori non banali uguali producono b = 0.