Verifica di un numero libero da quadrati
Il 30 è libero da quadrati perché si scompone in 2 × 3 × 5, ogni primo una sola volta, mentre il 12 non lo è, poiché il quadrato di 2 lo divide. Inserisca un intero positivo e ottenga un sì o un no motivato. Gratis nel Suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Un numero libero da quadrati non contiene il quadrato di alcun fattore primo: ogni primo della sua fattorizzazione compare al massimo una volta. Questo strumento fornisce una risposta immediata per qualsiasi intero positivo entro il limite pubblicato. Se il numero non soddisfa la proprietà, indica anche un primo il cui quadrato divide il valore inserito, offrendo una motivazione breve e verificabile. Il calcolo è deterministico, non richiede accesso alla rete e considera 1 libero da quadrati secondo la definizione matematica abituale.
Che cosa significa libero da quadrati
Un intero positivo è libero da quadrati quando nessun numero primo lo divide più di una volta. In modo equivalente, non deve esistere un primo p il cui quadrato divida l’intero. Per esempio, 30 è libero da quadrati perché la sua fattorizzazione prima è 2 × 3 × 5 e ciascun primo compare esattamente una volta.
Al contrario, 12 non lo è, poiché si fattorizza come 2² × 3 e quindi è divisibile per il quadrato di 2. Il numero 1 è un caso limite importante: la sua fattorizzazione prima è vuota, perciò non contiene primi ripetuti ed è considerato libero da quadrati. Lo strumento applica direttamente questa definizione.
Il risultato include il valore originale e il booleano squarefree. Tale testimone rende semplice controllare la risposta: elevi al quadrato il primo indicato e divida il numero originale per il valore ottenuto. Un quoziente intero dimostra perché l’input non supera la verifica, senza richiedere una fattorizzazione prima completa.
Come viene eseguita la verifica
L’algoritmo utilizza aritmetica intera esatta e divisioni di prova con un limite definito. Parte dal più piccolo candidato a fattore primo ed esamina i possibili fattori in ordine crescente. Quando un candidato divide il valore residuo, l’algoritmo ne rimuove una copia e controlla subito se lo stesso candidato divide ancora il resto.
Una seconda divisione significa che il quadrato del candidato divide l’input originale: il numero non può essere libero da quadrati e il calcolo può terminare. Se è presente una sola copia, la ricerca prosegue sul resto ridotto. Non occorre provare candidati oltre la radice quadrata del resto: ogni resto composto deve avere un fattore minore o uguale alla propria radice quadrata, mentre un resto maggiore rimasto alla fine è esso stesso un singolo fattore primo.
Il metodo non dipende da test probabilistici di primalità, tabelle memorizzate, servizi esterni o approssimazioni in virgola mobile. Il limite pubblicato mantiene prevedibile il lavoro, mentre la validazione degli interi sicuri di JavaScript assicura che ogni divisione e ogni resto rappresentino esattamente l’intero fornito.
Come inserire e interpretare il risultato
Fornisca n come intero positivo, non come decimale, frazione, stringa in notazione scientifica o numero formattato con separatori. I valori inferiori a 1 vengono rifiutati perché questa capacità segue la definizione abituale relativa agli interi positivi. Anche i valori superiori al massimo documentato vengono rifiutati per mantenere limitata l’esecuzione.
Un risultato squarefree vero afferma che l’intero non contiene fattori primi al quadrato; non afferma che l’intero sia primo. Numeri come 6, 30 e 42 sono composti ma liberi da quadrati, perché ciascuno dei loro distinti fattori primi compare una sola volta. L’input potrebbe contenere altri primi ripetuti non elencati, poiché un solo testimone è sufficiente a decidere la proprietà.
L’output è adatto a regole di validazione, esperimenti di teoria dei numeri e fasi preliminari che richiedono soltanto la classificazione. L’algoritmo non invia l’input a servizi di terze parti.
Casi d'uso
Validare un insieme di dati numerici
Classifichi gli interi positivi archiviati e segnali le righe che contengono un fattore primo al quadrato prima di ulteriori analisi.
Controllare esercizi di aritmetica
Verifichi se una risposta proposta è libera da quadrati e usi il primo ripetuto come spiegazione sintetica in caso contrario.
Filtrare sequenze generate
Conservi solo i termini liberi da quadrati in un flusso deterministico, senza calcolare o memorizzare ogni fattorizzazione completa.
Domande frequenti
Il numero 1 è libero da quadrati?
Sì. Il numero 1 non ha fattori primi, quindi nessun primo compare al quadrato nella sua fattorizzazione.
Libero da quadrati significa primo?
No. Un numero composto può essere libero da quadrati se ogni fattore primo compare una sola volta; 30 ne è un esempio.
Cosa mostra il risultato quando un numero non è libero da quadrati?
Indica un primo il cui quadrato divide il Suo numero. Per il 12 quel primo è il 2, perché 4 sta esattamente in 12. Quel solo primo basta come prova, senza una scomposizione completa.
Posso verificare un numero decimale o negativo?
No. Sono accettati solo interi positivi. Valori minori di 1, decimali, frazioni, notazione scientifica e numeri scritti con separatori delle migliaia vengono rifiutati anziché interpretati.
Come si verifica se un numero è libero da quadrati?
I possibili fattori primi vengono provati dal più piccolo in su. Ogni volta che uno divide il numero, se ne toglie una copia e si riprova lo stesso; una seconda divisione indica che il suo quadrato divide il numero.
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/squarefree-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":30}'const res = await fetch("https://api.kit.forhosting.com/numth/squarefree-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 30
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/squarefree-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 30
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/squarefree-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":30}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":30}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/squarefree-check", 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": 30
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.squarefree_check",
"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
Che cosa significa libero da quadrati
Quando il risultato è falso, repeated_prime riporta un primo presente almeno due volte.
Come viene eseguita la verifica
Ripetendo la richiesta con lo stesso input si ottiene sempre lo stesso risultato JSON.
Come inserire e interpretare il risultato
Un risultato falso include repeated_prime, ma tale campo è un testimone e non una fattorizzazione completa. Nel browser viene eseguito localmente lo stesso calcolo puro, mentre una richiesta API costa $0.002.
Domande tecniche
Che cosa indica repeated_prime?
Indica un primo il cui quadrato divide n. L’input può contenere altri fattori primi ripetuti che non vengono elencati.
Posso inserire zero o un intero negativo?
No. Questa capacità accetta soltanto interi positivi e restituisce un errore invalid_input quando n è inferiore a 1.
Quanto costa una verifica tramite API?
Ogni richiesta API costa $0.002. La versione nel browser esegue localmente lo stesso calcolo deterministico.