En este ejemplo, aprenderá a escribir un programa en JavaScript para encontrar un número Armstrong entre dos valores enteros.
Para comprender este ejemplo, debe tener el conocimiento de los siguientes temas de programación de JavaScript:
- JavaScript para bucle
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
Antes de probar este programa, visite el Programa JavaScript para verificar el número Armstrong.
Ejemplo: números de Armstrong entre dos intervalos
// program to find Armstrong number between intervals // take an input const lowNumber = parseInt(prompt('Enter a positive low integer value: ')); const highNumber = parseInt(prompt('Enter a positive high integer value: ')); console.log ('Armstrong Numbers:'); // looping through lowNumber to highNumber for (let i = lowNumber; i 0) ( let remainder = temp % 10; sum += remainder ** numberOfDigits; // removing last digit from the number temp = parseInt(temp / 10); // convert float into integer ) if (sum == i) ( console.log(i); ) )
Salida
Ingrese un valor entero bajo positivo: 8 Ingrese un valor entero alto positivo: 500 Números Armstrong: 8 9 153 370 371 407
En el programa anterior, se solicita al usuario que ingrese dos números enteros. Uno es el número entero de intervalo más bajo y otro es el valor entero más alto.
El parseInt()
convierte el valor cadena numérica a un valor entero.
El for
bucle se utiliza para recorrer los dos números proporcionados por el usuario.
El toString()
método se utiliza para convertir el número en una cadena. Y la length
propiedad se usa para encontrar la longitud de una cadena. Por lo tanto, en este caso, length
da el total de dígitos del número.
let numberOfDigits = i.toString().length;
En la primera for
iteración del ciclo ( i = 8 ),
- El número más bajo ingresado por el usuario se almacena en una variable temporal
temp
. - Se
while
usa un bucle para iterar el número.- 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,8 % 10
da 8 . - El resto se multiplica por el número de dígitos de ese número (aquí 1 ) y se calcula la suma.
- El dígito se divide por 10 para eliminar el último dígito, es decir,
8 / 10
da 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, se muestra el número de Armstrong.
El ciclo continúa para todos los números que se encuentran entre los límites inferior y superior proporcionados por el usuario. En el ejemplo anterior, el ciclo se ejecuta de 8 a 500 .