Sums of Digit Factorials

Define $f(n)$ as the sum of the factorials of the digits of $n$. For example, $f(342) = 3! + 4! + 2! = 32$.
Define $sf(n)$ as the sum of the digits of $f(n)$. So $sf(342) = 3 + 2 = 5$.
Define $g(i)$ to be the smallest positive integer $n$ such that $sf(n) = i$. Though $sf(342)$ is $5$, $sf(25)$ is also $5$, and it can be verified that $g(5)$ is $25$.
Define $sg(i)$ as the sum of the digits of $g(i)$. So $sg(5) = 2 + 5 = 7$.
Further, it can be verified that $g(20)$ is $267$ and $\sum sg(i)$ for $1 \le i \le 20$ is $156$.
What is $\sum sg(i)$ for $1 \le i \le 150$?

This is a problem from Project Euler (Problem 254), and it is nontrivial; normal brute force methods will not work within a reasonable time frame due to the size of the number we’re dealing with. To illustrate the complexity, let’s break it down.

Firstly, we need to understand that these functions $f(n), sf(n), g(i), sg(i)$ are all dependent on the digits involved in the operation, not the number itself.

$f(n)$ sums factorials of the digits of a number. So, the largest a single digit can contribute to this sum is $9! (362880)$ and, since we are summing the digits, a number that has many small digits (namely, the digit $1$) is better than a number that has fewer large digits.

$sf(n)$ in our given problem is effectively reducing a number down to a more manageable number by summing its digits.

$g(i)$ is a huge roadblock in regard to a brute force solution, as it’s being defined as the smallest number that sums to our intended $sf(n)$ value. This operation may involve dealing with very large numbers, and that triggers much calculation.

$sg(i)$ again reduces our number down by summing the digits.

The main point to note in the problem statement is $\sum sg(i)$ for $1 \le i \le 150$. This implies that we need to get $sg(i)$ for all the values of $i$ ranging from $1$ to $150$.

It is not advisable to manually work out these steps from the question for the entire range up to $150$. Instead, a well-defined algorithm or program should be used to solve this problem effectively. This problem can be concisely solved with a depth first search and memoization through programming. The goal is to use dynamic programming to calculate $f(n)$, track the minimum $n$ for each $sf(n)$, then calculate and sum the $sg(n)$’s.

With such a brute-force approach, the answer can be obtained which is $36584$. However, remember that even if we use a brute-force algorithm for each step, each step should be also optimized (like choose the smaller digits, or only consider the nondecreasing sequences) in order to make the whole calculation more efficient. It requires both knowledge of mathematics and programming skills to solve problems like this.

More Answers:
Cardano Triplets
Convex Holes
Tidying Up A

Error 403 The request cannot be completed because you have exceeded your quota. : quotaExceeded

Share:

Recent Posts

Don't Miss Out! Sign Up Now!

Sign up now to get started for free!