Programa Java para verificar el número de Armstrong entre dos enteros

Un entero positivo con dígitos p, q, r, s…, se conoce como número de Armstrong de orden n si se cumple la siguiente condición.

pqrs... = pn + qn + rn + sn +....

Ejemplo:

370 = 3*3*3 + 7*7*7 + 0 
   =  27 + 343 + 0
   =  370

Por lo tanto, 370 es un número de Armstrong .

Ejemplos:

Input : 100 200
Output :153
Explanation : 100 and 200 are given  
two integers.
 153 = 1*1*1 + 5*5*5 + 3*3*3  
     = 1 + 125 + 27
     =  153
Therefore, only 153 is an Armstrong number between 100 and 200.

Acercarse:

En primer lugar, recorreremos todos los números en el rango dado. Luego, para cada número, tenemos que contar el número de dígitos que tiene. Si el número de dígitos en el número actual es n entonces, encuentre la suma de la (n-ésima) potencia de todos los dígitos en el número indicado. Y si la suma es igual al número actual i , imprima el número.

Ejemplo:

Java

// JAVA program to find Armstrong
// numbers between two integers
import java.io.*;
import java.math.*;
  
class gfg {
  
    // Function to print Armstrong
    // Numbers between two integers
    static void ArmstrongNum(int l, int h)
    {
        for (int j = l + 1; j < h; ++j) {
  
            // Calculating number of digits
            int y = j;
            int N = 0;
            while (y != 0) {
                y /= 10;
                ++N;
            }
  
            // Calculating the sum of nth
            // power of all the digits
            int sum_power = 0;
            y = j;
            while (y != 0) {
                int d = y % 10;
                sum_power += Math.pow(d, N);
                y /= 10;
            }
  
            // Checking if the current number
            // i is equal to the sum of nth
            // power of all the digits
            if (sum_power == j)
                System.out.print(j + " ");
        }
    }
  
    // The Driver code
    public static void main(String args[])
    {
        int n1 = 50;
        int n2 = 500;
        ArmstrongNum(n1, n2);
        System.out.println();
    }
}
Producción

153 370 371 407 

De manera similar, podemos encontrar los números de Armstrong dentro de cualquier rango dado.

Publicación traducida automáticamente

Artículo escrito por Kanchan_Ray y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *