It turns out that each positive real number \(x\in\mathbb{R}^+\) can be written in the form

\[x=\frac{1}{a_1}+\frac{1}{a_1a_2}+\frac{1}{a_1a_2a_3}+\cdots,\]

where \({a_1,a_2,a_3,\ldots}\) is a unique non-decreasing sequence, finite or infinite, of postive integers. This is called the *Engel expansion* of \(x\), after the German mathematician Friedrich Engel.

## Example

One striking sequence is that for the number \(e\). It’s \({1,1,2,3,\cdots}\), so

\[e=\frac{1}{1}+\frac{1}{1}+\frac{1}{1\cdot 2}+\frac{1}{1\cdot 2\cdot 3}+\cdots.\]

This is simply the well-know infinite sum

\[e=\sum_{n=0}^\infty\,\frac{1}{n!},\]

but it’s funny that either \(\pi\) or \(e\) often show up in these kinds of things.

## Algorithm

The find the values of \(a_i\), use the following iterative algorithm. Set

\[u_1=x,\]

\[a_i=\left\lceil{\frac{1}{u_i}}\right\rceil,\]

where \(\lceil y\rceil\) is the *ceiling*, the smallest integer greater than or equal to \(y\), and

\[u_{i+1}=u_ia_i-1,\]

and continue this process until you hit a value of \(u_i\) that is zero. And that’s it. Finding a value of \(u_i\) that is zero may or may not happen, since an Engel expansion can be infinite.

As a numerical example, let’s apply this algorithm to \(x=1.225\). We have \(u_1=1.225\) and \(a_1=\lceil{1/1.225}\rceil=1\). Then \(u_2=1.225\cdot 1-1=0.225\) and \(a_2=\lceil{1/0.225}\rceil=5\). And then \(u_3=0.225\cdot 5-1=0.125\) and \(a_3=\lceil{1/0.125}\rceil=8\). And then it stops, because \(u_4=0.125\cdot 8-1=0\). Hence,

\[1.225=\frac{1}{1}+\frac{1}{1\cdot 5}+\frac{1}{1\cdot 5\cdot 8}.\]

## Where Does the Algorithm Come From?

A way to understand where the algorithm comes from, is to start from the original Engel expansion again,

\[x=\frac{1}{a_1}+\frac{1}{a_1a_2}+\frac{1}{a_1a_2a_3}+\cdots.\]

The obvious value to set \(a_1\) to would be \(1/x\), because then we would be done. However, we want the \(a_i\)s to be integers, so we set \(a_1=\lceil 1/x\rceil\). We know that \(x\) is now not (necessarily) equal to \(1/a_1\), but we do know that we want to pick the other \(a_i\)s so that the rest of the (possibly infinite) sum is equal to their difference, so

\[x-\frac{1}{a_1}=\frac{1}{a_1a_2}+\frac{1}{a_1a_2a_3}+\cdots.\]

First we get rid of the \(a_1\)s in all the remaining terms by multiplying both sides of the equation by \(a_1\), so

\[xa_1-1=\frac{1}{a_2}+\frac{1}{a_2a_3}+\frac{1}{a_2a_3a_4}\cdots.\]

It turns out that we then immediately end up in a situation that is very similar to what we started off with, so that we can repeat the whole process by setting \(u_2=xa_1-1\), which is the next step in the algorithm.

Note that this algorithm leads to \(a_2\) (and all further \(a_i\)s) being positive, since \(x-1/a_1\geq 0\), because \(\lceil 1/x\rceil\geq 1/x\).

Also note that this doesn’t prove that the algorithm converges to the correct solution (although it actually does). It simply shows where the algorithm comes from.

## Add new comment