Neste exemplo, você aprenderá a escrever um programa em JavaScript para encontrar um número Armstrong entre dois valores inteiros.
Para entender este exemplo, você deve ter conhecimento dos seguintes tópicos de programação JavaScript:
- JavaScript para loop
Um número inteiro positivo é chamado de número Armstrong (de ordem n ) se:
abcd… = a n + b n + c n + d n +…
No caso de um número Armstrong de 3 dígitos, a soma dos cubos de cada dígito é igual ao próprio número. Por exemplo, 153 é um número Armstrong porque:
153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3
Da mesma forma, 1634 é um número Armstrong porque:
1634 = 1 * 1 * 1 * 1 + 6 * 6 * 6 * 6 * + 3 * 3 * 3 * 3 + 4 * 4 * 4 * 4
Antes de experimentar este programa, visite Programa JavaScript para verificar o número Armstrong.
Exemplo: números de Armstrong entre dois 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); ) )
Resultado
Insira um valor inteiro baixo positivo: 8 Insira um valor inteiro alto positivo: 500 Números Armstrong: 8 9 153 370 371 407
No programa acima, o usuário é solicitado a inserir dois números inteiros. Um é o inteiro do intervalo inferior e outro é o valor inteiro mais alto.
O parseInt()
converte o valor da string numérica em um valor inteiro.
O for
loop é usado para percorrer os dois números fornecidos pelo usuário.
O toString()
método é usado para converter o número em uma string. E a length
propriedade é usada para encontrar o comprimento de uma string. Portanto, neste caso, length
fornece o total de dígitos do número.
let numberOfDigits = i.toString().length;
Na primeira for
iteração do loop ( i = 8 ),
- O menor número inserido pelo usuário é armazenado em uma variável temporária
temp
. - Um
while
loop é usado para iterar o número.- O operador de módulo
%
é usado para obter cada número de dígito. Quando um número é dividido por 10 , o resto é o último dígito. Na primeira iteração,8 % 10
dá 8 . - O resto é multiplicado pelo número de dígitos desse número (aqui 1 ) e a soma é calculada.
- O dígito é dividido por 10 para remover o último dígito, ou seja,
8 / 10
dá 0.
- O operador de módulo
- Finalmente, a soma é comparada com o número inserido pelo usuário. Se a soma e o número forem iguais, o número de Armstrong será exibido.
O loop continua para todos os números que estão entre os limites inferior e superior fornecidos pelo usuário. No exemplo acima, o loop é executado de 8 a 500 .