Verificador de números evil
O 3 é um número evil: em binário ele é 11, com 2 uns, e 2 é par. Digite qualquer inteiro não negativo e veja a forma binária, quantos uns ele tem e se essa quantidade é par. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- N
- 3
- Binário
- 11
- Quantidade de uns
- 2
- Paridade de uns
- even
Um número evil é um inteiro não negativo cuja representação binária contém uma contagem par de bits iguais a um. Zero é evil porque seu único dígito binário é zero e a contagem de uns é par; três é evil porque o binário onze tem dois uns; um não é evil porque um único um é ímpar (a classe complementar costuma ser chamada odious). Este verificador valida um inteiro não negativo, monta a string binária, conta os bits ligados com aritmética inteira pura e devolve um booleano claro mais cada campo intermediário para que alunos, professores e autores de scripts possam auditar a classificação sem um sistema de álgebra computacional nem uma biblioteca de bits opaca. Entradas negativas são rejeitadas como inválidas.
O que é um número evil e como o popcount binário decide
Escreva qualquer inteiro não negativo na base dois e conte quantos dígitos valem um. Se essa contagem populacional—também chamada peso de Hamming ou contagem de bits ligados—for par, o inteiro é evil; se for ímpar, o inteiro é odious e portanto não é evil sob esta definição. O nome vem da teoria recreativa dos números e se associa à sequência de Thue–Morse, onde os números evil ocupam as posições de paridade par.
Casos concretos ajudam: zero tem binário zero e zero uns, logo é evil; um tem binário um e um um, logo é odious; dois é binário dez com um um e é odious; três é binário onze com dois uns e é evil; quatro é binário cem com um um e é odious; cinco é binário cento e um com dois uns e é evil.
A definição é puramente combinatória sobre a string de bits—não depende de fatores primos, somas de dígitos na base dez nem de aproximação em ponto flutuante. Materiais didáticos costumam contrastar números evil e odious com perfeitos, abundantes ou felizes: essas propriedades inspecionam divisores ou dígitos decimais, enquanto o status evil só inspeciona a paridade binária dos uns.
Como todo inteiro não negativo tem expansão binária finita, a propriedade sempre termina após um número de passos proporcional ao comprimento em bits, o que a torna ideal para checagens automáticas, problemas de competição, entrevistas de programação e demos em sala onde os alunos devem mostrar o caminho binário e não apenas um rótulo de sim ou não.
Uso prático, limites, preços e buscas relacionadas
Use a ferramenta do navegador quando quiser um veredito imediato de número evil ao estudar problemas de paridade de bits, preparar uma aula de teoria dos números ou conferir uma resposta de competição sem instalar um sistema de álgebra computacional. As entradas aceitas são inteiros não negativos até o máximo de inteiro seguro de JavaScript, para que exemplos de sala e demos de entrevista permaneçam exatos em faixas numéricas ordinárias. Os resultados nunca dependem de relógios, sementes aleatórias ou serviços aritméticos remotos.
Ao ensinar, prefira exemplos emparelhados que mostrem ambos os desfechos: três e cinco como casos evil verdadeiros, um e dois como casos odious falsos, zero como o caso limite de uns vazios pares, e uma entrada negativa para demonstrar o caminho rígido de rejeição. Outras landings de teoria dos números neste kit miram outras intenções, como números felizes, repunits ou primos; esta página é especificamente para quem busca se um inteiro dado é um número evil ou tem uns binários em quantidade par.
Casos de uso
Demos em sala do peso de Hamming binário
Professores podem mostrar como contagens pares versus ímpares de bits iguais a um separam números evil de odious, com cada campo intermediário visível para discussão.
Perguntas frequentes
O que é um número evil?
Um inteiro não negativo com quantidade par de uns em sua representação binária. Exemplo: 3 é binário 11 (dois uns) e é evil; 1 é binário 1 (um um) e não é.
O que acontece se n for negativo?
Este verificador exige um inteiro não negativo; negativos são rejeitados e não cobrados.
O verificador de números evil é gratuito?
A ferramenta do navegador roda grátis no seu dispositivo.
Os resultados são determinísticos?
Não há modelo, chamada de rede nem aleatoriedade no caminho.
O 3 é um número evil?
Sim. Escrito em binário, o 3 é 11, que tem dois uns. Dois é uma quantidade par, então o 3 é evil.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/numth/evil-number \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":3}'const res = await fetch("https://api.kit.forhosting.com/numth/evil-number", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 3
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/evil-number",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 3
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/evil-number", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":3}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":3}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/evil-number", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"n": 3
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.evil_number",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
O que é um número evil e como o popcount binário decide
A classe odious complementar é mencionada só por clareza; esta capacidade responde à pergunta evil e ainda reporta ones_parity para que você veja os dois lados em uma única resposta.
Como este verificador avalia o status evil e o que a API devolve
A implementação valida que n está presente, é finito, integral e pelo menos zero. Use em pipelines de tarefas, validadores de competição, sandboxes de preparação para entrevistas ou qualquer fluxo que precise de uma checagem reproduzível de paridade binária sem instalar pacotes especializados de teoria dos números em cada máquina. Chame a capacidade com um campo n contendo um inteiro não negativo, seja como número JSON dentro do intervalo seguro de inteiros ou como string de dígitos que normaliza para um inteiro completo. Os aliases number e value são aceitos para o mesmo campo. Em seguida monta a representação binária sem o prefixo 0b (zero mapeia para a string zero), conta uns pegando repetidamente o bit menos significativo e fazendo metade inteira, e define is_evil como true quando essa contagem módulo dois é zero. A resposta também devolve ones_count, ones_parity como even ou odd, binary como a string de bits e uma fórmula curta que indica o popcount e a conclusão evil ou odious. n ausente, não inteiros, frações, valores acima do máximo publicado e qualquer número negativo falham com invalid_input e não são cobrados. O preço é fixo US$ 0,002 por requisição bem-sucedida na unidade item.
Uso prático, limites, preços e buscas relacionadas
Use a API quando um script, um corretor de tarefas ou uma plataforma educacional precisar de JSON estável para muitos valores com um contrato fixo. Cada requisição bem-sucedida é um item faturável a US$ 0,002; validação falha não consome saldo. Como binary e ones_count voltam juntos, os alunos podem recomputar o popcount à mão e bater com a API linha a linha. Conecte o endpoint a apps de prática para entrevistas, páginas de matemática recreativa, pipelines de classificação de inteiros ou painéis didáticos onde você já prefira aritmética exata de bits em vez de calculadoras opacas de caixa-preta. A entrega funciona a partir do formulário web, da API de tarefas, de clientes SDK e de outros canais KIT sem mudar o contrato matemático.
Casos de integração
Checagens de paridade de bits em entrevistas e competições
Candidatos e avaliadores podem verificar a classificação de números evil para inteiros não negativos arbitrários e inspecionar binary e ones_count sem escrever um loop local de popcount.
Pipelines automatizados de classificação de inteiros
Scripts que etiquetam inteiros pela paridade de uns binários podem chamar um único endpoint determinístico com preço por item em vez de embutir contagem de bits ad hoc.
Perguntas técnicas
Zero é um número evil?
Sim. Zero tem binário 0 e zero uns; zero é par, portanto is_evil é true.