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

1 Answer

0 votes
#include <iostream>

using namespace std;

// 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

long factorial(int n);

int main()
{
	int reminder, sum, tmp;

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

		while (tmp)
		{
			reminder = tmp % 10;
			sum = sum + factorial(reminder);
			tmp /= 10;
		}
		if (sum == n)
			cout << n << endl;
	}

	return 0;
}

long factorial(int n)
{
	long 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 142 views
1 answer 140 views
1 answer 123 views
1 answer 193 views
1 answer 122 views
1 answer 2,194 views
...