diff --git a/src/main/java/com/thealgorithms/maths/Armstrong.java b/src/main/java/com/thealgorithms/maths/Armstrong.java index 9a7a014ec99f..14e02380ea58 100644 --- a/src/main/java/com/thealgorithms/maths/Armstrong.java +++ b/src/main/java/com/thealgorithms/maths/Armstrong.java @@ -21,19 +21,24 @@ public class Armstrong { * @return {@code true} if the given number is an Armstrong number, {@code false} otherwise */ public boolean isArmstrong(int number) { - if (number < 0) { - return false; // Negative numbers cannot be Armstrong numbers - } - long sum = 0; - int totalDigits = (int) Math.log10(number) + 1; // get the length of the number (number of digits) - long originalNumber = number; + if (number < 0) { + return false; // Negative numbers cannot be Armstrong numbers + } + if (number == 0) { + return true; // 0 is an Armstrong number + } - while (originalNumber > 0) { - long digit = 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; - } + long sum = 0; + int totalDigits = (int) Math.log10(number) + 1; + long originalNumber = number; - return sum == number; + while (originalNumber > 0) { + long digit = originalNumber % 10; + sum += (long) Math.pow(digit, totalDigits); + originalNumber /= 10; } + + return sum == number; +} + }