- Notifications
You must be signed in to change notification settings - Fork 19.9k
/
Copy pathArmstrong.java
39 lines (35 loc) · 1.43 KB
/
Armstrong.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
packagecom.thealgorithms.maths;
/**
* This class checks whether a given number is an Armstrong number or not.
* An Armstrong number is a number that is equal to the sum of its own digits,
* each raised to the power of the number of digits.
*
* For example, 370 is an Armstrong number because 3^3 + 7^3 + 0^3 = 370.
* 1634 is an Armstrong number because 1^4 + 6^4 + 3^4 + 4^4 = 1634.
* An Armstrong number is often called a Narcissistic number.
*
* @author satyabarghav
* @modifier rahul katteda - (13/01/2025) - [updated the logic for getting total number of digits]
*/
publicclassArmstrong {
/**
* Checks whether a given number is an Armstrong number or not.
*
* @param number the number to check
* @return {@code true} if the given number is an Armstrong number, {@code false} otherwise
*/
publicbooleanisArmstrong(intnumber) {
if (number < 0) {
returnfalse; // Negative numbers cannot be Armstrong numbers
}
longsum = 0;
inttotalDigits = (int) Math.log10(number) + 1; // get the length of the number (number of digits)
longoriginalNumber = number;
while (originalNumber > 0) {
longdigit = originalNumber % 10;
sum += (long) Math.pow(digit, totalDigits); // The digit raised to the power of total number of digits and added to the sum.
originalNumber /= 10;
}
returnsum == number;
}
}