Verifica dei numeri perniciosi tramite bit uno
Conti gli uni di un numero in binario e veda se quel conteggio è primo: 13 è 1101 in binario, con 3 uni, quindi è pernicioso. Le potenze di due hanno un solo uno e non lo sono mai. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- N
- 13
- Binario
- 1101
- Numero di uni
- 3
Un numero pernicioso è un intero positivo la cui rappresentazione binaria contiene un numero primo di bit uguali a uno. Questo strumento converte esattamente il valore decimale di Lei in base due, conta gli uno, verifica la primalità di quel piccolo conteggio e restituisce ogni risultato intermedio insieme alla classificazione. È adatto a esercizi di teoria dei numeri, esplorazione di successioni, test di programmazione e convalida dei dati. I valori inferiori a uno vengono rifiutati per evitare una classificazione ambigua.
Quando un numero è pernicioso
La definizione prevede due passaggi precisi. Prima scriva l’intero positivo n in base due senza zeri iniziali. Poi conti quante cifre della rappresentazione sono uno; questa quantità è chiamata anche peso di Hamming.
Il numero n è pernicioso se e solo se tale conteggio è primo. Per esempio, tredici si scrive 1101: contiene tre uno e tre è primo, quindi tredici è pernicioso. Quindici è 1111 e contiene quattro uno; quattro è composto, dunque quindici non è pernicioso.
Le potenze di due, come otto, hanno un solo bit uno. Poiché uno non è primo, non sono perniciose. I due campi booleani coincidono intenzionalmente: il primo indica la prova matematica, mentre il secondo fornisce direttamente la classificazione.
Il dominio comprende solo interi positivi; zero e valori negativi producono un errore di convalida anziché un risultato fuorviante.
Dove è utile questa verifica
I numeri perniciosi collegano in modo compatto aritmetica intera, rappresentazione binaria, combinatoria e primalità. In aula, lo strumento conferma conversioni manuali mostrando dettagli sufficienti per individuare un errore. Studiosi e appassionati possono filtrare elenchi prima di analizzare distanze, residui o intersezioni con altre successioni.
Un gruppo dati può anche confrontare stringa binaria e conteggio prodotti da un altro sistema con questo risultato deterministico. Inoltre non afferma che n sia primo: un composto può essere pernicioso quando il suo numero di uno è primo, mentre un primo può non esserlo. Tenere separate le due domande evita un comune errore interpretativo.
Casi d'uso
Controllare esercizi di teoria dei numeri
Confermi conversione binaria, conteggio degli uno e classificazione in una sola risposta.
Provare una funzione popcount
Usi risultati deterministici come casi di test per codice di conteggio bit o generatori di successioni.
Filtrare raccolte di interi
Classifichi interi positivi prima di analizzare schemi, distanze o incroci con altre successioni.
Domande frequenti
Che cos’è un numero pernicioso?
È un intero positivo la cui rappresentazione binaria contiene un numero primo di bit uguali a uno.
Uno è un numero pernicioso?
No. Uno è 1 in binario, ha un solo bit uno e il numero uno non è primo.
Un numero pernicioso deve essere primo?
No. La primalità riguarda il conteggio dei bit uno, non n; anche un numero composto può superare il test.
Quali input vengono rifiutati?
Valori mancanti o inferiori a uno, frazioni, notazione scientifica, stringhe non decimali e interi non sicuri.
13 è un numero pernicioso?
Sì. In binario 13 si scrive 1101, che contiene tre uni. Tre è primo, quindi 13 è pernicioso. Il risultato mostra la forma binaria e il conteggio, così può verificarlo a mano.
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/pernicious-number \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":13}'const res = await fetch("https://api.kit.forhosting.com/numth/pernicious-number", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 13
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/pernicious-number",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 13
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/pernicious-number", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":13}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":13}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/pernicious-number", 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": 13
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.pernicious_number",
"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.
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
Quando un numero è pernicioso
La risposta espone binary, one_count, one_count_is_prime e pernicious affinché Lei possa controllare la conversione e ogni fase, invece di ricevere soltanto un booleano.
Come inviare l’input e leggere il risultato
Una stringa può avere un segno più iniziale; punti decimali, notazione esponenziale, prefissi esadecimali, virgole e spazi interni sono rifiutati. Dopo la convalida, l’implementazione converte il valore in BigInt e ne ricava la forma in base due, conservando ogni bit anche vicino al limite. Quindi percorre una volta la stringa binaria e incrementa il contatore per ciascun uno. Un intero sicuro contiene al massimo 53 cifre binarie significative, quindi il test di primalità è minimo: scarta conteggi sotto due, gestisce due, elimina i pari e prova divisori dispari fino alla radice quadrata. Invii n come intero JSON esatto oppure come semplice stringa decimale. Il campo preferito è n, ma number e value sono alias accettati per moduli e dati esistenti. L’intervallo termina al massimo intero sicuro di JavaScript, così l’input può tornare come numero JSON senza arrotondamento. Legga binary per verificare la conversione, one_count per il conteggio e pernicious per la conclusione. Non vengono usati rete, casualità, orologio o stato mutabile; lo stesso input produce sempre lo stesso JSON.
Dove è utile questa verifica
Negli esercizi di programmazione, il suo JSON stabile funge da riferimento per testare funzioni popcount, parser di interi o generatori di successioni. Ogni richiesta API riuscita costa $0.002; l’esecuzione interattiva nel browser è gratuita. Lo strumento classifica un intero per richiesta e non genera intervalli o successioni illimitate, mantenendo prevedibili tempi e costi.
Domande tecniche
Quanto costa l’API?
Ogni richiesta API riuscita costa $0.002. La versione interattiva nel browser è gratuita.