Armstrong Number in Java With N number
Armstrong Number in Java With N number |
What is Armstrong Number?
When any positive number is equal to the sum of its own digits raised to the power of the number of digits.
In simple, Armstrong number is the sum of power of all digits in given number.
0, 1, 153, 370, 371, 407, 1634, 8208, 9474, 54748 are some example of Armstrong number.
Lets understand with example so you understand properly.
Example :-
370 = (3*3*3) + (7*7*7) + (0*0*0) = 370
1634 = (1*1*1*1) + (6*6*6*6) + (3*3*3*3) + (4*4*4*4)
Example 1 :- Armstrong number for only 3 digits
import java.util.Scanner;
public class ArmstrongExample {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter Number");
int number = sc.nextInt();
int originalNumber = number;
int modulo, total = 0;
while(number > 0) {
modulo = number%10;
total = total + (modulo*modulo*modulo);
number = number/10;
}
if (total == originalNumber) {
System.out.println(originalNumber +" is Armstrong Number");
} else {
System.out.println(originalNumber +" is Not Armstrong Number");
}
}
}
Output :-
Enter Number
370
370 is Armstrong Number
Enter Number
371
371 is Armstrong Number
Enter Number
450
450 is Not Armstrong Number
This example only works with THREE digits number.
Explanation :-
Find modulo of given number using 10 number.So it gives last digit.- 370 = 370 % 10 = 0
After multiply that didgit
- 0*0*0 = 0
Last, divide number by 10 so it gives all digits without last one.
- 370 = 370/10 = 37
So number become 37 and total become 0, still number is greater than 0 so it again goes into while loop and perform same action as explain above.
- modulo = 37 % 10 = 7
- total = 0 + (7*7*7) = 343
- number = 37 / 10 = 3.7 (3)
- modulo = 3 % 10 = 3
- total = 343 + (3*3*3) = 370
- number = 3 / 10 = 0.3 (0)
number become 0 so mow it does not goes into while loop.
Example 2 :- Find Armstrong number for more than 3 number
import java.util.Scanner;
public class ArmstrongExample {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter Number");
int number = sc.nextInt();
int originalNumber = number;
String stringNumber = String.valueOf(number);
int modulo, total = 0;
while(number > 0) {
modulo = number%10;
total = (int) (total + (Math.pow(modulo, stringNumber.length())));
number = number/10;
}
if (total == originalNumber) {
System.out.println(originalNumber +" is Armstrong Number");
} else {
System.out.println(originalNumber +" is Not Armstrong Number");
}
}
}
Output :-
Enter Number
9474
9474 is Armstrong Number
Enter Number
54748
54748 is Armstrong Number
Explanation :-
Math.pow() function takes two int arguments. first is number and second is power.
If you have any query regarding above explanation then comment down.
Other posts you may like :-
- Hacker Rank Mark and Toys Solution In Java
- Find and Print all duplicate characters in given string in Java
- Sort List of Object property in Java with check null values
Comments
Post a Comment