Comprobador de números vampiro
Un número vampiro es un entero compuesto cuyas cifras pueden reorganizarse para formar dos factores de igual longitud, llamados colmillos.
Ejecutar — gratis
Este comprobador aplica la definición completa y no se limita a buscar una pareja de factores conveniente. Introduzca un entero positivo con una cantidad par de cifras: sabrá si es vampiro y verá todos los pares de colmillos válidos. Si la cantidad de cifras es impar, se devuelve un error, pues por definición no pueden formarse dos colmillos de igual longitud.
Qué demuestra la prueba de números vampiro
Un resultado positivo demuestra mucho más que una factorización corriente. Para un entero de 2k cifras, cada colmillo debe tener exactamente k cifras, ambos deben multiplicarse para producir el entero original y sus cifras decimales combinadas deben coincidir con las originales, incluidas todas las repeticiones. Por tanto, si el número contiene dos ceros, los colmillos también deben aportar dos ceros; una cifra ausente no puede aparecer en ningún factor. Además, se aplica la restricción tradicional sobre los ceros finales: se descarta una pareja si ambos colmillos terminan en cero. El comprobador evalúa conjuntamente todas estas condiciones y devuelve cada pareja distinta en orden ascendente. Por ejemplo, 1260 cumple la definición porque 21 multiplicado por 60 da 1260 y las cifras reunidas de 21 y 60 son exactamente 1, 2, 6 y 0. Un resultado negativo solo indica que no existe una pareja con la longitud y las cifras exigidas; no significa que el número sea primo ni que carezca de factores.
Cómo introducir el número e interpretar el resultado
Envíe n como una cadena que represente un entero decimal sin signo. El uso de una cadena permite conservar y contar las cifras con exactitud, sin notación científica ni redondeos numéricos silenciosos. No incluya espacios, comas, puntos decimales, signo positivo ni ceros iniciales. La entrada debe tener una cantidad par de cifras y un máximo de doce, límite que mantiene acotada la búsqueda exacta tanto en el navegador como mediante la API. El resultado repite n, muestra digit_count, fija is_vampire en true o false y presenta fangs como una matriz de parejas numéricas. Una matriz fangs vacía constituye una respuesta negativa completa dentro de esta definición. Si existen varias descomposiciones válidas, cada una aparece una sola vez y con el colmillo menor primero. Una cantidad impar de cifras provoca un error de entrada, no un valor false: estos números quedan fuera del dominio declarado porque no es posible repartir una cantidad impar entre dos colmillos decimales de igual longitud. Así, una integración puede distinguir una consulta inválida de un resultado negativo válido.
Por qué es importante revisar todos los factores
Los acertijos de números vampiro se verifican mal con facilidad cuando se resuelven a mano. No basta con encontrar factores cuyas cifras parezcan similares, y probar únicamente una pareja conocida puede ocultar otra descomposición válida. Esta implementación recorre los posibles primeros colmillos desde el menor entero permitido de k cifras hasta la raíz cuadrada de n. Solo estudia un candidato cuando divide n exactamente y después comprueba que el factor complementario también tenga k cifras. Por último, compara firmas de cifras ordenadas y aplica la exclusión de dos ceros finales. Limitar el primer colmillo a la raíz cuadrada evita duplicados invertidos sin alterar el resultado. El procedimiento es determinista: la misma entrada siempre produce las mismas parejas en el mismo orden, sin red, valores aleatorios, reloj ni estado almacenado. Por ello resulta apropiado para teoría de números recreativa, clases, corrección de ejercicios de programación y procesos de datos repetibles. La ejecución en el navegador es gratuita y cada solicitud API cuesta $0.002. Ambos canales utilizan la misma lógica pura y siguen idénticas reglas.
Qué puede hacer con ella
Verificar un acertijo numérico
Compruebe una propuesta de número vampiro y muestre las parejas exactas que satisfacen toda la definición.
Validar secuencias generadas
Examine desde un programa los enteros candidatos y distinga los resultados negativos válidos de las entradas fuera del dominio par.
Enseñar factores y multiconjuntos
Muestre cómo interactúan la multiplicación, la longitud de los factores, las cifras repetidas y la regla de los ceros finales.
Preguntas frecuentes
¿Qué es un número vampiro?
Es un entero con una cantidad par de cifras que se factoriza en dos colmillos de igual longitud cuyas cifras combinadas reproducen exactamente las del entero, sin que ambos terminen en cero.
¿Por qué una cantidad impar de cifras provoca un error?
La definición exige dos colmillos de igual longitud. Las cifras del entero no pueden repartirse por igual si su cantidad es impar, por lo que esa entrada queda fuera del dominio.
¿Puede un número tener más de una pareja de colmillos?
Sí. El comprobador recorre todo el intervalo de factores permitido y devuelve cada pareja válida una vez, ordenada por el colmillo menor.
¿Se permiten ceros iniciales en el número o en los colmillos?
No. La entrada debe emplear su representación decimal ordinaria, y los límites numéricos de longitud impiden colmillos con ceros iniciales.
¿Cuánto cuesta una comprobación mediante la API?
Cada solicitud API cuesta $0.002. También puede ejecutar gratis en el navegador el mismo comprobador determinista.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/numth/vampire-number \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":"1260"}'const res = await fetch("https://api.kit.forhosting.com/numth/vampire-number", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": "1260"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/vampire-number",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": "1260"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/vampire-number", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":"1260"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":"1260"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/vampire-number", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"n": "1260"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.vampire_number",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_digits | 12 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |