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
while
utiliza 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 % 10
da 3 . - El cubo del dígito restante se calcula multiplicando el dígito tres veces. Y el cubo se agrega a la
sum
variable. - El dígito se divide por 10 para eliminar el último dígito.
- El
while
ciclo 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 length
propiedad devuelve la longitud de una cadena.
El número ingresado por el usuario se almacena en una temp
variable. Y while
se 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.