Shifting Nth Root Algorithm Does anyone have a very simple dumbed-down explanation of the shifting nth root algorithm on paper (finding an nth root with a method similar to long division)?  I know very basic addition, subtraction, multiplication, division, and exponents.  I would like to learn the shifting nth root algorithm (to calculate nth roots) in these very very basic terms, like a kid in school learns long division for the first time.  The only explanation I have found is the wikipedia article, and it is not simple enough for me with my limitiations.  Thank you.
OK, so let us set up an example of calculating $\sqrt[3]{9876.5432}$. We arrange the radicand in blocks of length $3$ so that we have $009:876:543:200:000...$. The first round is slightly different than the next rounds. The first step is to find the maximal $\beta$ such that:
$$
\beta^n\leq\alpha=009
$$
This is $\beta=2$. Then we put $y=2$ and $r=9-2^3=1$.



Now we are ready to proceed to the general scheme. Find the largest $\beta$ such that
$$
(10\cdot 2+\beta)^3-10^3\cdot 2^3\leq 10^3\cdot 1+876
$$
The reason this makes sense is that we are actually looking at  $(20+\beta)^3-8000\leq 1876$ or equivalently $(20+\beta)^3\leq 9876$ and finding the largest digit $\beta$. Trying $(20+1)^3=9261$ and $(20+2)^3=10648$ shows that $\beta=1$ is the largest integer satisfying this. So we proceed with this:
$$
\begin{align}
y'&amp;=10y+\beta\\&amp;=20+1\\&amp;=21\\
r'&amp;=10^3r+\alpha-((y')^3-10^3 y^3)\\
&amp;=10^3\cdot 1+876-(21^3-10^3\cdot 2^3)\\
&amp;=615
\end{align}
$$



Now we proceed in the same manner:
$$
(10\cdot 21+\beta)^3-10^3\cdot 21^3\leq 10^3\cdot 615+543
$$
Since $214^3=9800344$ whereas $215^3=9938375$ we see that the next digit is $\beta=4$. Thus
$$
\begin{align}
y'&amp;=10y+\beta\\&amp;=210+4\\&amp;=214\\
r'&amp;=10^3r+\alpha-((y')^3-10^3 y^3)\\
&amp;=10^3\cdot 615+543-(214^3-10^3\cdot 21^3)\\
&amp;=76199
\end{align}
$$



And so on:
$$
(10\cdot 214+\beta)^3-10^3\cdot 214^3\leq10^3\cdot 76199+200
$$
And we see that $2145^3=9869198625$ whereas $2146^3=9883008136$ so we must have $\beta=5$ and
Now we proceed in the same manner:
$$
(10\cdot 21+\beta)^3-10^3\cdot 21^3\leq 10^3\cdot 615+543
$$
Since $214^3=9800344$ whereas $215^3=9938375$ we see that the next digit is $\beta=4$. Thus
$$
\begin{align}
y'&amp;=10y+\beta\\&amp;=2140+5\\&amp;=2145\\
r'&amp;=10^3r+\alpha-((y')^3-10^3 y^3)\\
&amp;=10^3\cdot 76199+200-(2145^3-10^3\cdot 214^3)\\
&amp;=7344575
\end{align}
$$



So frankly, this method is not much different than simply trying out and fine tuning different numbers raised to the $n$-th power. We have found so far, that $\sqrt[3]{9876.5432}&gt;21.45$ and that $21.45$ is the largest four digit number that does not exeed the goal of $9876.5432$ when raised to the third power.



I hope I provided this in a meaningful way, nonetheless!
I made the algorithm in VBA in Excel. For now it only calculates roots of integers. It is easy to implement the decimals as well.

Just copy and paste the code into an EXCEL module and type the name of the function into some cell, passing the parameters.


Public Function RootShift(ByVal radicand As Double, degree As Long, Optional ByRef remainder As Double = 0) As Double

   Dim fullRadicand As String, partialRadicand As String, missingZeroes As Long, digit As Long

   Dim minimalPotency As Double, minimalRemainder As Double, potency As Double

   radicand = Int(radicand)

   degree = Abs(degree)

   fullRadicand = CStr(radicand)

   missingZeroes = degree - Len(fullRadicand) Mod degree

   If missingZeroes &lt; degree Then

      fullRadicand = String(missingZeroes, "0") + fullRadicand

   End If

   remainder = 0

   RootShift = 0

   Do While fullRadicand &lt;&gt; ""

      partialRadicand = Left(fullRadicand, degree)

      fullRadicand = Mid(fullRadicand, degree + 1)

      minimalPotency = (RootShift * 10) ^ degree

      minimalRemainder = remainder * 10 ^ degree + Val(partialRadicand)

      For digit = 9 To 0 Step -1

          potency = (RootShift * 10 + digit) ^ degree - minimalPotency

          If potency &lt;= minimalRemainder Then

             Exit For

          End If

      Next

      RootShift = RootShift * 10 + digit

      remainder = minimalRemainder - potency

   Loop

End Function