How to find all the strong numbers in given range with C#

1 Answer

0 votes
using System;

// Strong numbers are the numbers that the sum of factorial of its digits 
// is equal to the original number

// 145 is a strong number: 1 + 24 + 120 = 145

namespace ConsoleApplication_C_Sharp
{
    class Program
    {
        static void Main(string[] args)
        {
            int reminder, sum, tmp;

            for (int n = 1; n <= 1000000; n++)
            {
                tmp = n;
                sum = 0;

                while (tmp != 0)
                {
                    reminder = tmp % 10;
                    sum = sum + factorial(reminder);
                    tmp /= 10;
                }
                if (sum == n)
                    Console.WriteLine("{0}", n);
            }
        }

        static int factorial(int n)
        {
            int fact = 1;

            for (int i = 2; i <= n; i++)
                fact = fact * i;

            return fact;
        }
    }
}


/*
run:
 
1
2
145
40585

*/

 



answered May 9, 2017 by avibootz
edited May 9, 2017 by avibootz

Related questions

1 answer 125 views
1 answer 109 views
1 answer 181 views
1 answer 107 views
1 answer 2,181 views
1 answer 217 views
...