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.

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.

Privacy Overview
Referbruv

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.

Strictly Necessary Cookies

Strictly Necessary Cookie should be enabled at all times so that we can save your preferences for cookie settings.

3rd Party Cookies

This website uses Google Analytics to collect anonymous information such as the number of visitors to the site, and the most popular pages.

Keeping this cookie enabled helps us to improve our website.