# Armstrong number

An Armstrong number (also called a plus perfect number or narcissistic number) is a number equal to the sum of the nth power of the digits, where n is the quantity of digits in the number.

## Check Armstrong Number

This Java program checks whether a given number is an Armstrong number or not. An Armstrong number is a number that is equal to the sum of the cubes of its digits. The program uses the checkArmstrong() method to check whether a given number is an Armstrong number or not. This method calculates the sum of the cubes of the digits of the given number and compares it with the original number. If both are equal, the method returns true, otherwise it returns false. The main method of the program takes a number as input from the user and checks whether it is an Armstrong number or not by calling the checkArmstrong() method. The program uses the Scanner class to take input from the user.

``````import java.util.Scanner;

public class ArmstrongNumber {
private static boolean checkArmstrong(int number) {
int temp, remainder, i, counter = 0, result = 0, power;
temp = number;

while (temp != 0) {
temp /= 10;
counter++;
}
temp = number;

while (temp != 0) {
remainder = temp % 10;

power = 1;
i = counter;
while (i != 0) {
power *= remainder;
i--;
}

result += power;
temp /= 10;

}

if (number == result) {
return true;
} else {
return false;
}
}

public static void main(String[] args) {
int number;

System.out.print("Enter a number to check for armstrong:  ");

if (checkArmstrong(number)) {
System.out.print(number + " is an armstrong number");
} else {
System.out.print(number + " is not an armstrong number");
}

}
}``````
##### Output
``````Enter a number to check if armstrong number:  8208
8208 is an armstrong number``````

## Armstrong Number Series

The code generates the armstrong number series for a given upper bound. An armstrong number is a number that is equal to the sum of cubes of its digits.

The code starts with the definition of a function named `checkArmstrong(int number)`. This function takes an integer `number` as an argument and returns a boolean value indicating whether `number` is an armstrong number or not.

The function first initializes some variables such as `temp`, `remainder`, `i`, `counter`, `result`, and `power` with initial values. The `temp` variable is initialized with the value of `number`. The `counter` is initialized with 0, which will be used to count the number of digits in `number`.

The first while loop is used to count the number of digits in `number` by dividing `temp` by 10 and incrementing the value of `counter` in each iteration until `temp` becomes 0. The `temp` is then re-initialized with the value of `number`.

The second while loop is used to calculate the sum of cubes of digits of `number`. The `remainder` is calculated as the remainder of `temp` divided by 10, which is the last digit of `temp`. The `power` is then calculated as the cube of `remainder` by initializing `i` with the value of `counter` and decrementing the value of `i` in each iteration of inner while loop. The inner while loop continues until `i` becomes 0. The `result` is then updated with the value of `result` plus `power`. The `temp` is then updated by dividing it by 10.

The final step of the function is to check whether `number` is equal to `result`. If `number` is equal to `result`, then the function returns `true`, otherwise it returns `false`.

The main function starts with the creation of a `Scanner` object named `reader` that is used to take input from the user. A variable `max` is then declared to store the upper bound for the armstrong number series.

The user is then prompted to enter the upper bound to find armstrong numbers. The value entered by the user is stored in `max`.

The main function then uses a for loop to generate the armstrong number series. The loop starts from `1` and continues until `i` becomes greater than `max`. In each iteration, the function `checkArmstrong(i)` is called, which returns a boolean value indicating whether `i` is an armstrong number or not. If `i` is an armstrong number, it is printed on the console.

Finally, the `Scanner` object is closed to release any resources it is holding.

``````import java.util.Scanner;

public class ArmstrongNumberSeries {
private static boolean checkArmstrong(int number) {
int temp, remainder, i, counter = 0, result = 0, power;
temp = number;

while (temp != 0) {
temp /= 10;
counter++;
}
temp = number;

while (temp != 0) {
remainder = temp % 10;

power = 1;
i = counter;
while (i != 0) {
power *= remainder;
i--;
}

result += power;
temp /= 10;

}

if (number == result) {
return true;
} else {
return false;
}
}

public static void main(String[] args) {
int max;

System.out.print("Enter the upper bound to find armstrong numbers:  ");
``````Enter the upper bound to find armstrong numbers:  1000