En este ejemplo, aprenderá a escribir un programa en JavaScript para verificar si un número es un número de Armstrong o no.
Para comprender este ejemplo, debe tener el conocimiento de los siguientes temas de programación de JavaScript:
- Operadores de JavaScript
- JavaScript while y do… while Loop
Un entero positivo se llama número de Armstrong (de orden n) si
abcd… = a n + b n + c n + d n +…
En el caso de un número Armstrong de 3 dígitos, la suma de los cubos de cada dígito es igual al número en sí. Por ejemplo, 153 es un número de Armstrong porque
153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3
De manera similar, 1634 es un número de Armstrong porque:
1634 = 1 * 1 * 1 * 1 + 6 * 6 * 6 * 6 * + 3 * 3 * 3 * 3 + 4 * 4 * 4 * 4
Ejemplo 1: Compruebe el número de tres dígitos de Armstrong
// program to check an Armstrong number of three digits let sum = 0; const number = prompt('Enter a three-digit positive integer: '); // create a temporary variable let temp = number; while (temp> 0) ( // finding the one's digit let remainder = temp % 10; sum += remainder * remainder * remainder; // removing last digit from the number temp = parseInt(temp / 10); // convert float into integer ) // check the condition if (sum == number) ( console.log(`$(number) is an Armstrong number`); ) else ( console.log(`$(number) is not an Armstrong number.`); )
Salida
Introduzca un número entero positivo de tres dígitos: 153 153 es un número de Armstrong.
El programa anterior toma una entrada del usuario. Entonces,
- El número ingresado por el usuario se almacena en una variable temporal
temp. - Se
whileutiliza un bucle para iterar un valor de tres dígitos.- El operador de módulo
%se utiliza para obtener cada número de dígito. Cuando un número se divide por 10 , el resto es el último dígito. En la primera iteración,153 % 10da 3 . - El cubo del dígito restante se calcula multiplicando el dígito tres veces. Y el cubo se agrega a la
sumvariable. - El dígito se divide por 10 para eliminar el último dígito.
- El
whileciclo continúa iterando y dividiendo el número por 10 hasta que el número es 0 .
- El operador de módulo
- Finalmente, la suma se compara con el número ingresado por el usuario. Si la suma y el número son iguales, el número es un número de Armstrong.
Nota : En el programa anterior, el cubo de un número se podría calcular usando un operador de exponente **. Por ejemplo,sum += remainder ** 3;
Ejemplo 2: comprobar el número de n dígitos de Armstrong
// program to check an Armstrong number of n digits // take an input const number = prompt("Enter a positive integer"); const numberOfDigits = number.length; let sum = 0; // create a temporary variable let temp = number; while (temp> 0) ( let remainder = temp % 10; sum += remainder ** numberOfDigits; // removing last digit from the number temp = parseInt(temp / 10); // convert float into integer ) if (sum == number) ( console.log(`$(number) is an Armstrong number`); ) else ( console.log(`$(number) is not an Armstrong number.`); )
Salida
Ingrese un número entero positivo: 92727 92727 es un número de Armstrong
En el programa anterior, se comprueba un número Armstrong de n dígitos.
Cuando el usuario ingresa un número, se toma como una cadena. La lengthpropiedad devuelve la longitud de una cadena.
El número ingresado por el usuario se almacena en una tempvariable. Y whilese usa un bucle para iterar hasta que su valor sea menor que 0 . Cada dígito del número se eleva a la potencia de la longitud del número.








