Comprobador de Armstrong: narcisistas y suma de potencias
El 153 es un número de Armstrong: tiene tres cifras y 1 + 125 + 27, los cubos de 1, 5 y 3, vuelven a sumar 153. Escriba cualquier entero no negativo y vea cada dígito, su potencia y el total. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- N
- 153
- Recuento de dígitos
- 3
- Dígitos
- 1, 5, 3
- Suma de potencias
- 153
Un número de Armstrong —también llamado número narcisista en base diez— es un entero no negativo igual a la suma de sus propios dígitos decimales, cada uno elevado a la potencia del recuento de dígitos. Ejemplos clásicos son ciento cincuenta y tres (uno al cubo más cinco al cubo más tres al cubo) y nueve mil cuatrocientos setenta y cuatro. Los valores de un solo dígito de cero a nueve son trivialmente de Armstrong porque cada dígito elevado a la primera potencia es él mismo. Esta capacidad extrae los dígitos, calcula la suma de potencias con aritmética entera pura y devuelve un booleano claro más cada término intermedio para que estudiantes, docentes y autores de scripts auditen la comprobación sin un sistema de álgebra computacional ni una biblioteca opaca.
Qué es un número de Armstrong (narcisista)
Escriba un entero no negativo n en decimal y sea k el recuento de sus dígitos. Eleve cada dígito a la potencia k, sume esas potencias y pregunte si el total es igual a n. Si lo es, n es un número de Armstrong —también conocido como invariante digital perfecto o número narcisista en base diez.
Con tres dígitos las potencias son cubos: ciento cincuenta y tres funciona porque uno al cubo es uno, cinco al cubo es ciento veinticinco, tres al cubo es veintisiete, y uno más ciento veinticinco más veintisiete es ciento cincuenta y tres. Los ejemplos de cuatro dígitos usan potencias cuartas; el famoso nueve mil cuatrocientos setenta y cuatro satisface nueve a la cuarta más cuatro a la cuarta más siete a la cuarta más cuatro a la cuarta.
Los números de un dígito siempre pasan porque el recuento de dígitos es uno y d a la primera es d. El cero se trata como valor de un dígito, de modo que cero a la primera es cero y la prueba tiene éxito. Números como diez fallan: uno al cuadrado más cero al cuadrado es uno, no diez.
Esta definición es fija y determinista: no hay muestreo, azar ni aritmética aproximada.
Qué puede hacer con ella
Validadores para concursos e entrevistas de programación
Afirme soluciones candidatas a problemas clásicos de números de Armstrong sin reimplementar la extracción de dígitos y la potencia entera en cada arnés de lenguaje.
Demos didácticas de propiedades dígito a dígito
Proyecte el arreglo terms en clase para que los alumnos vean cada dígito, el exponente compartido, el valor potenciado y la comparación final en una sola respuesta.
Preguntas frecuentes
¿Qué es un número de Armstrong?
Un entero no negativo igual a la suma de sus dígitos cada uno elevado a la potencia del recuento de dígitos. Ejemplo: 153 = 1³ + 5³ + 3³.
¿Es un número de Armstrong lo mismo que un número narcisista?
En base 10, sí para esta herramienta: ambos nombres designan la misma identidad de potencias de dígitos. Otras bases quedan fuera del alcance aquí.
¿Es gratuito el comprobador de números de Armstrong?
La herramienta del navegador es gratuita y se ejecuta en local.
¿Por qué todos los números de una cifra son de Armstrong?
Un número de una sola cifra tiene un único dígito, así que se eleva a la primera potencia y queda igual. Por eso del 0 al 9 todos superan la prueba.
¿Por qué el 10 no es un número de Armstrong?
Tiene dos cifras, así que cada dígito se eleva al cuadrado: 1 al cuadrado más 0 al cuadrado da 1, no 10. Las potencias de los dígitos deben sumar exactamente el propio número.
Herramientas relacionadas
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/armstrong-number \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":153}'const res = await fetch("https://api.kit.forhosting.com/numth/armstrong-number", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 153
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/armstrong-number",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 153
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/armstrong-number", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":153}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":153}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/armstrong-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": 153
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.armstrong_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_n | 999999999999999 |
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. |
Notas técnicas
Qué es un número de Armstrong (narcisista)
El endpoint nunca inventa una lista parcial de dígitos ni redondea potencias intermedias; cada contribución es un producto entero de un dígito consigo mismo k veces.
Cómo llamar a la API y qué devuelve
Úselo desde pipelines de deberes, validadores de concursos de programación, entornos de preparación de entrevistas o cualquier flujo que necesite una comprobación reproducible de números narcisistas sin instalar paquetes especializados de teoría de números en cada máquina. Envíe un cuerpo JSON con un único campo obligatorio n —un número entero al menos cero y como máximo nueve cientos noventa y nueve billones novecientos noventa y nueve mil novecientos noventa y nueve millones novecientos noventa y nueve mil novecientos noventa y nueve (quince nueves), elegido para que todo valor quede dentro de los enteros seguros de JavaScript. Se aceptan los alias number y value para el mismo campo. En caso de éxito la respuesta incluye n tal como se aceptó, digit_count, digits como arreglo ordenado de más a menos significativo, terms como objetos cada uno con digit, power y value, power_sum como el total de esos valores, e is_armstrong como booleano que compara power_sum con n. La validación fallida —n ausente, no entero, fracción, valor por encima del límite publicado o cualquier número negativo— devuelve invalid_input y nunca se cobra. El precio es un fijo de $0.002 por petición exitosa (ítem unitario con precio marginal unitario cero). La misma función pura alimenta la herramienta gratuita del navegador y la ruta API de pago, de modo que un ejemplo dorado que pasa en local coincide exactamente con la aritmética de producción.
Consejos prácticos, límites y búsquedas relacionadas
Si necesita candidatos de multiprecisión con docenas de dígitos, use una pila dedicada de enteros grandes: esta capacidad ligera de parse está pensada para comprobaciones interactivas y entradas de tamaño didáctico. Al enseñar, prefiera ejemplos que muestren ambos resultados: ciento cincuenta y tres y trescientos setenta como casos verdaderos de tres dígitos, diez o cien como casos falsos, y una entrada negativa para demostrar el rechazo duro. Otras páginas de teoría de números de este kit cubren intenciones como sumas alícuotas o exponentación modular; esta página es específicamente para quien busca si un entero dado es de Armstrong o narcisista. Mantenga n dentro del rango de enteros seguros publicado para que la extracción de dígitos y la potencia entera sigan siendo exactas en el Worker y en el navegador. Como terms lista cada contribución de dígito, los estudiantes pueden recalcular cada potencia a mano y cotejar línea a línea con la API. No trate el booleano solo como una caja negra: combínelo con power_sum y digit_count al calificar entregas para que el crédito parcial o hipótesis erróneas de recuento de dígitos se diagnostiquen con facilidad. Las tareas fallidas que devuelven invalid_input no consumen saldo prepago, lo que mantiene baratos los scripts exploratorios cuando los usuarios escriben valores incorrectos al aprender el contrato.
Casos de integración
Deberes: verificar respuestas de Armstrong y narcisistas
Asigne un entero a los alumnos y contraste su suma de potencias de dígitos y la etiqueta sí/no con un resultado determinista de la API o del navegador gratuito.
Preguntas técnicas
¿Son los números de un solo dígito números de Armstrong?
Sí. Para 0–9 el recuento de dígitos es 1, y cada dígito a la primera potencia es él mismo, de modo que is_armstrong es verdadero.
¿Qué entradas se rechazan?
n ausente, no enteros, valores por encima del máximo publicado y cualquier número negativo devuelven invalid_input. Esos fallos no se cobran.