Programa JavaScript para encontrar um número Armstrong em um intervalo

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 forloop é 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 lengthpropriedade é usada para encontrar o comprimento de uma string. Portanto, neste caso, lengthfornece o total de dígitos do número.

 let numberOfDigits = i.toString().length;

Na primeira foriteração do loop ( i = 8 ),

  1. O menor número inserido pelo usuário é armazenado em uma variável temporária temp.
  2. Um whileloop é usado para iterar o número.
    1. 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 % 108 .
    2. O resto é multiplicado pelo número de dígitos desse número (aqui 1 ) e a soma é calculada.
    3. O dígito é dividido por 10 para remover o último dígito, ou seja, 8 / 10dá 0.
  3. 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 .

Artigos interessantes...