➤ Even Number in Java
➤ Odd Number in Java
➤ Prime Number in Java
➤ Twin Prime Number
➤ Magic Number in Java
➤ Neon Number in Java
➤ Tech Number in Java
➤ Harshad Number
➤ Armstrong Number
➤ Palindrome Number
➤ Perfect Number in Java
➤ Pronic Number in Java
➤ Spy Number in Java
➤ Kaprekar Number
➤ Automorphic Number
➤ Krishnamurthy Number
➤ Sunny Number in Java
➤ Buzz Number in Java
➤ Evil Number in Java
➤ Duck Number in Java
➤ Nelson Number in Java
➤ Strong Number in Java
➤ Java Special Number
➤ Disarium Number
Java Number Program Using String
➤ Unique Number in Java
➤ Fascinating Number
➤ ISBN Number in Java
In the previous posts, we have developed many Java programs based on the numbers. Now in this post, we will develop the Armstrong number program in Java. First, we will develop a java program to check an Armstrong number, and then we will develop a java program for an Armstrong number between 1 to 1000.
A positive integer is called Armstrong number of order n if, abcd…. = an + bn + cn + dn + ….
For Example :- 153
13 + 53 + 33 = 1 + 125 + 27 = 153
So, 153 is an Armstrong number of order 3.
4150 = 45 + 15 + 55 + 05 = 1,024 + 1 + 3,125 + 0 = 4150
So, 4150 is an Armstrong number of order 5
Procedure to check Armstrong number of order N
1) Take a variable and take an order to check
2) Declare variables lastDigit
, power
, and sum
Initialize sum with 0
3) Take a temporary variable n
to store numbers
4) Find the last digit of n
5) Calculate the power of that lastDigit
with order i.e. pow(lastDigit, order)
6) Add the result into the sum
7) Remove the last digit
8) Repeat steps 4 to 7 until the number becomes 0
9) Compare sum value and the actual number
==> If both are the same then it is the Armstrong number of the given order
==> Else it is not Armstrong number of the given order
Java method to check Armstrong number of order N
public static boolean isArmstrong(int number, int order){
// declare variables
int lastDigit = 0;
int power = 0;
int sum = 0;
// temporary variable to store number
int n = number;
while(n!=0) {
// find last digit
lastDigit = n % 10;
// find power of digit
power = (int) Math.pow(lastDigit, order);
// add power value into sum
sum += power;
// remove last digit
n /= 10;
}
if(sum == number) return true;
else return false;
}
In this method to find the power, we take the support of the pow()
, which is defined in the Math class. The pow()
is a static method so we can call it without creating an object of the Math class, and it returns double so we need to use type casting it to int type. Instead of using the pre-defined pow()
method of Math class, you can also use your own method to find the power of a number.
Also see:- Special number, Magic number, Armstrong number, Perfect number, Evil Number, Spy Number, Sunny number in Java
Java program
Based on the above isArmstrong(-,-)
method we will write a java program to check the Armstrong number of order N.
import java.util.Scanner;
public class ArmstrongNumber {
public static boolean isArmstrong(int number, int order){
// declare variables
int lastDigit = 0;
int power = 0;
int sum = 0;
// temporary variable to store number
int n = number;
while(n!=0) {
// find last digit
lastDigit = n % 10;
// find power of digit
power = (int) Math.pow(lastDigit, order);
// add power value into sum
sum += power;
// remove last digit
n /= 10;
}
if(sum == number) return true;
else return false;
}
public static void main(String[] args) {
// declare variables
int number = 0;
int order = 0;
// create Scanner class object
Scanner scan = new Scanner(System.in);
// take input
System.out.print("Enter integer number::");
number = scan.nextInt();
System.out.print("Enter order to check::");
order = scan.nextInt();
//check number is Armstrong number or not
if(isArmstrong(number, order))
System.out.println( number +" is "
+"Armstrong number of order "+ order);
else
System.out.println( number +" is not "
+"Armstrong number of order "+ order);
// close Scanner class object
scan.close();
}
}
The output for different test-cases:-
Enter an integer number:: 153
Enter an order to check:: 3
153 is Armstrong number of order 3
Enter an integer number:: 153
Enter an order to check:: 5
153 is not Armstrong number of order 5
Enter an integer number:: 4150
Enter an order to check:: 3
4150 is not Armstrong number of order 3
Enter an integer number:: 4150
Enter an order to check:: 5
4150 is Armstrong number of order 5
Java program for Armstrong number between 1 to 1000
We can also find all Armstrong numbers of a given order in the given range. For this purpose, we need to take the minimum, and maximum values of the range and order to check the Armstrong number.
import java.util.Scanner;
public class ArmstrongNumberInRange {
public static boolean isArmstrong(int number, int order){
// declare variables
int lastDigit = 0;
int power = 0;
int sum = 0;
// temporary variable to store number
int n = number;
while(n!=0) {
// find last digit
lastDigit = n % 10;
// find power of digit
power = (int) Math.pow(lastDigit, order);
// add power value into sum
sum += power;
// remove last digit
n /= 10;
}
if(sum == number) return true;
else return false;
}
public static void main(String[] args) {
// declare variables
int minRange , maxRange;
int order = 0;
// create Scanner class object
Scanner scan = new Scanner(System.in);
// read inputs
System.out.print("Enter min & max "+
"Range value:: ");
minRange = scan.nextInt();
maxRange = scan.nextInt();
System.out.print("Enter order to check::");
order = scan.nextInt();
// check in range
System.out.println("Armstrong numbers"+
" from "+minRange+" to "+maxRange+
" of order " +order+" is:: ");
for(int i = minRange; i<= maxRange; i++)
if(isArmstrong(i, order))
System.out.print( i + " ");
// close Scanner class object
scan.close();
}
}
The output for different test-cases:-
Enter min & max Range value:: 1 1000
Enter an order to check:: 3
Armstrong numbers from 1 to 1000 of order 3 is:: 1 153 370 371 407
Enter min & max Range value:: 1 10000
Enter an order to check:: 5
Armstrong numbers from 1 to 10000 of order 5 is:: 1 4150 4151
If you enjoyed this post, share it with your friends. Do you want to share more information about the topic discussed above or do you find anything incorrect? Let us know in the comments. Thank you!