So most people know

\begin{aligned} 2 \times 2 = 4 \end{aligned}

and the basic methods taught to us in school using carries (base 10 system), but what if we introduced some calculus just to be a sadist? This is my attempt because why not? I mean it produces the same result and maybe down the line it'll be useful to some code or theorem?

To start we must denote how the base 10 number system works. For example consider:

\begin{aligned} 712=7(10)^2+1(10)+2 \end{aligned}

For my notation I will note the *function* in terms of the highest exponent associated with the 10. In the case of 712 it would be 2. To note this kind of number (or multiplication later) I will use:

\begin{aligned} \Upsilon_{n} \: \rightarrow 712 \in \Upsilon_{2} \: ; 7123 \in

\Upsilon_{3} \end{aligned}

I think you get the picture now. So now consider the multiplication of 2 numbers classified in n=2.

\begin{aligned} \Upsilon_{2_{a}}=712 \:, \Upsilon_{2_{b}}=715 \end{aligned}

Now we know the answer is **509080**, but here's how calculus factors in to make this a living hell!

\begin{aligned} 712=7(10)^2+1(10)+2 \:, 715=7(10)^2+1(10)+5 \end{aligned}

\begin{aligned} \left[ 7(10)^2+1(10)+2 \right] \left[ 7(10)^2+1(10)+5 \right] \end{aligned}

So now that we have the multiplication in the proper format consider this:

\begin{aligned} \Upsilon_{2} = a_{1}(10)^2+a_{2}(10)+a_{3} \end{aligned}

So now the multiplication of 2 n=2 classified numbers becomes:

\begin{align*}

\left[ a_{1}(10)^2+a_{2}(10)+a_{3} \right] \left[ a_{4}(10)^2+a_{5}(10)+a_{6} \right] & =

a_{4} \left[ a_{1}(10)^4+a_{2}(10)^3+a_{3}(10)^2 \right] \\& +

a_{5} \left[ a_{1}(10)^3+a_{2}(10)^2+a_{3}(10) \right] \\& +

a_{6} \left[ a_{1}(10)^2+a_{2}(10)+a_{3} \right]

\end{align*}

You might see the pattern I'm going to exploit now! If not all will be revealed shortly! Using Sigma Notation the above mess can be simplified (yea no ...) to:

\begin{aligned} \displaystyle \sum \limits_{j=1}^3 \left[

a_{j+3} \left( \displaystyle \sum \limits_{\beta=1}^3 \left[

a_{\beta}(10)^{6- \beta -j}

\right] \right) \right] \end{aligned}

From here you might also see another pattern. It generalizes (if you do check higher values of n) so that the multiplication of 2 n class numbers create:

\begin{aligned} \Upsilon_{n_{a}} \times \Upsilon_{n_{b}} =

\displaystyle \sum \limits_{j=1}^{n+1} \left[

a_{j+n+1} \left( \displaystyle \sum \limits_{\beta=1}^{n+1} \left[

a_{\beta}(10)^{2(n+1) - \beta -j}

\right] \right) \right] \end{aligned}

What makes this so tedious is remembering the a-values (all of which should follow 0 ≤ a < 10). For instance on any given multiplication of this style one must remember 2(n+1) values and then solve that big ol' mess seen above. The pattern is easy to write so that'll save you some time at least. Anyways here's my way of solving for 509080:

\begin{align*}

509080 = \left[ 7(10)^2+1(10)+2 \right] \left[ 7(10)^2+1(10)+5 \right] & =

7 \left[ 7(10)^4+1(10)^3+2(10)^2 \right] \\& +

1 \left[ 7(10)^3+1(10)^2+2(10) \right] \\& +

5 \left[ 7(10)^2+1(10)+2 \right]

\end{align*}

I personally don't think anyone should use this for n=1 as we should have them memorized (#shame) and to my knowledge this only works for n using positive integers. Regardless, a super over-the-top way of multiplying!