Find if the given number is an Armstrong Number

A number is called an Armstrong Number or Narcissistic number if the sum of its own digits raised to the power of the number of digits equals to the number.

For example, 371 = 3^3 + 7^3 + 1^3 = 27 + 343 + 1

By logic, all single digit numbers are Armstrong numbers since n^1 = n.

For a given number, we would need to find out if the given number is an Armstrong number or not.


        public static bool IsArmstrongNumber(int n)
        {
            int r, cube, sum = 0, input = n;

            if (n < 10)
                return true;

            while (n != 0)
            {
                r = n % 10;
                cube = r * r * r;
                sum = sum + cube;
                n = n / 10;
            }

            return sum == input ? true : false;
        }
        

How it works:

Calculating an Armstrong number relies on the same basic Divisibility rule of 10, on which the logic to count the number of digits can also be made.

For each iteration till the number is made 0, we strip the number of its last digit by modulus dividing with 10 and then cube the remainder and add it up to a total sum. Finally once the number is completely dealt, we check if the total sum is equal to the input number or not. If equal, it is an Armstrong number else not.


Buy Me A Coffee

Found this article helpful? Please consider supporting!

Ram
Ram

I'm a full-stack developer and a software enthusiast who likes to play around with cloud and tech stack out of curiosity. You can connect with me on Medium, Twitter or LinkedIn.

Leave a Reply

Your email address will not be published. Required fields are marked *