This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: "Multiplicative digital root" – news · newspapers · books · scholar · JSTOR (October 2019) (Learn how and when to remove this template message)

In number theory, the multiplicative digital root of a natural number ${\displaystyle n}$ in a given number base ${\displaystyle b}$ is found by multiplying the digits of ${\displaystyle n}$ together, then repeating this operation until only a single-digit remains, which is called the multiplicative digital root of ${\displaystyle n}$.[1] Multiplicative digital roots are the multiplicative equivalent of digital roots.

## Definition

Let ${\displaystyle n}$ be a natural number. We define the digit product for base ${\displaystyle b>1}$ ${\displaystyle F_{b}:\mathbb {N} \rightarrow \mathbb {N} }$ to be the following:

${\displaystyle F_{b}(n)=\prod _{i=0}^{k-1}d_{i))$

where ${\displaystyle k=\lfloor \log _{b}{n}\rfloor +1}$ is the number of digits in the number in base ${\displaystyle b}$, and

${\displaystyle d_{i}={\frac {n{\bmod {b^{i+1))}-n{\bmod {b))^{i)){b^{i))))$

is the value of each digit of the number. A natural number ${\displaystyle n}$ is a multiplicative digital root if it is a fixed point for ${\displaystyle F_{b))$, which occurs if ${\displaystyle F_{b}(n)=n}$.

For example, in base ${\displaystyle b=10}$, 0 is the multiplicative digital root of 9876, as

${\displaystyle F_{10}(9876)=(9)(8)(7)(6)=3024}$
${\displaystyle F_{10}(3024)=(3)(0)(2)(4)=0}$
${\displaystyle F_{10}(0)=0}$

All natural numbers ${\displaystyle n}$ are preperiodic points for ${\displaystyle F_{b))$, regardless of the base. This is because if ${\displaystyle n\geq b}$, then

${\displaystyle n=\sum _{i=0}^{k-1}d_{i}b^{i))$

and therefore

${\displaystyle F_{b}(n)=\prod _{i=0}^{k-1}d_{i}=d_{k-1}\prod _{i=0}^{k-2}d_{i}

If ${\displaystyle n, then trivially

${\displaystyle F_{b}(n)=n}$

Therefore, the only possible multiplicative digital roots are the natural numbers ${\displaystyle 0\leq n, and there are no cycles other than the fixed points of ${\displaystyle 0\leq n.

## Multiplicative persistence

The number of iterations ${\displaystyle i}$ needed for ${\displaystyle F_{b}^{i}(n)}$ to reach a fixed point is the multiplicative persistence of ${\displaystyle n}$. The multiplicative persistence is undefined if it never reaches a fixed point.

In base 10, it is conjectured that there is no number with a multiplicative persistence ${\displaystyle i>11}$: this is known to be true for numbers ${\displaystyle n\leq 10^{20585))$.[2][1] The smallest numbers with persistence 0, 1, ... are:

0, 10, 25, 39, 77, 679, 6788, 68889, 2677889, 26888999, 3778888999, 277777788888899. (sequence A003001 in the OEIS)

The search for these numbers can be sped up by using additional properties of the decimal digits of these record-breaking numbers. These digits must be sorted, and, except for the first two digits, all digits must be 7, 8, or 9. There are also additional restrictions on the first two digits. Based on these restrictions, the number of candidates for ${\displaystyle k}$-digit numbers with record-breaking persistence is only proportional to the square of ${\displaystyle k}$, a tiny fraction of all possible ${\displaystyle k}$-digit numbers. However, any number that is missing from the sequence above would have multiplicative persistence > 11; such numbers are believed not to exist, and would need to have over 20,000 digits if they do exist.[2]

## Extension to negative integers

The multiplicative digital root can be extended to the negative integers by use of a signed-digit representation to represent each integer.

## Programming example

The example below implements the digit product described in the definition above to search for multiplicative digital roots and multiplicative persistences in Python.

def digit_product(x: int, b: int) -> int:
if x == 0:
return 0
total = 1
while x > 1:
if x % b == 0:
return 0
if x % b > 1:
total = total * (x % b)
x = x // b

def multiplicative_digital_root(x: int, b :int) -> int:
seen = []
while x not in seen:
seen.append(x)
x = digit_product(x, b)
return x

def multiplicative_persistence(x: int, b: int) -> int:
seen = []
while x not in seen:
seen.append(x)
x = digit_product(x, b)
return len(seen) - 1