File tree Expand file tree Collapse file tree 1 file changed +6
-3
lines changed
src/main/java/com/thealgorithms/maths Expand file tree Collapse file tree 1 file changed +6
-3
lines changed Original file line number Diff line number Diff line change 1010 * An Armstrong number is often called a Narcissistic number.
1111 *
1212 * @author satyabarghav
13+ * @modifier rahul katteda - (13/01/2025) - [updated the logic for getting total number of digits]
1314 */
1415public class Armstrong {
1516
@@ -20,14 +21,16 @@ public class Armstrong {
2021 * @return {@code true} if the given number is an Armstrong number, {@code false} otherwise
2122 */
2223 public boolean isArmstrong (int number ) {
24+ if (number < 0 ) {
25+ return false ; // Negative numbers cannot be Armstrong numbers
26+ }
2327 long sum = 0 ;
24- String temp = Integer .toString (number ); // Convert the given number to a string
25- int power = temp .length (); // Extract the length of the number (number of digits)
28+ int totalDigits = (int ) Math .log10 (number ) + 1 ; // get the length of the number (number of digits)
2629 long originalNumber = number ;
2730
2831 while (originalNumber > 0 ) {
2932 long digit = originalNumber % 10 ;
30- sum += (long ) Math .pow (digit , power ); // The digit raised to the power of the number of digits and added to the sum.
33+ sum += (long ) Math .pow (digit , totalDigits ); // The digit raised to the power of total number of digits and added to the sum.
3134 originalNumber /= 10 ;
3235 }
3336
You can’t perform that action at this time.
0 commit comments