Computer Science

Multiplicative Persistence

Trace exact decimal digit products, inspect every iteration, and distinguish persistence from the final digit with single-digit and zero-containing boundaries.

By Riano · Published · Updated · Report a correction

Multiplicative Persistence

A small rule with a long trail

Replace an integer by the product of its decimal digits. Repeat until only one digit remains. The number of replacements is its multiplicative persistence. The final digit is a different result: two numbers can have the same final digit but require different numbers of steps. This experiment keeps the complete chain beside a selected digit multiplication so you can check both.

Count transitions, not digits

If a decimal number n has digits dk, …, d0, define its digit product D(n) by multiplying those digits. Starting with n0=n, form nj+1=D(nj) only while nj has at least two digits. Persistence is the index of the first single-digit state. In this module every number from 0 through 9 therefore has persistence zero.

D(n) = dk × … × d0
p(n) = min {j ≥ 0 : nj < 10}
679 → 378 → 168 → 48 → 32 → 6
Five arrows: p(679) = 5. Final digit: 6.

Rearranging the canonical digits without creating a leading zero preserves the first digit product. For example, 976 and 679 both first produce 378 and then share the rest of their chain. A zero inside a multi-digit number has a more immediate effect: its first digit product is zero. This statement needs the multi-digit qualification, since starting at zero already requires no steps.

Predict the result for 487

For this original worked example, calculate each product before moving the Iteration control. There are four states but only three transitions. The last row is a stopping condition, not a fourth multiplication.

IterationCurrent numberDigit calculationNext number
04874 × 8 × 7 = 224224
12242 × 2 × 4 = 1616
2161 × 6 = 66
36Already one digitNone

Thus p(487)=3 and its final digit is 6. At iteration 1, the selected number is 224 and the next product is 16, even though the full experiment still has persistence 3. Selecting a state does not start a new experiment from that state.

Why the process stops

For a multi-digit number with leading digit a and k other digits, k is at least one and a is positive. Its value is at least a×10k. Every other digit is at most 9, so their product with a is at most a×9k, which is strictly smaller. Each nonterminal update therefore produces a smaller nonnegative integer. It must eventually reach a single digit.

This descent establishes termination for each input; it does not establish a universal bound on the number of steps across all starting integers. Seeing the 11-step example 277777788888899 is an observation about that exact number. The explorer does not search for records or claim that a finite set of examples proves a global maximum.

Check the chain with the actual controls

Open the Multiplicative Persistence experiment. These steps use its exact decimal inputs and button names.

  1. Enter 487 in Starting number. Persistence is 3 and Final digit is 6. The selected iteration resets to 0, displaying current number 487 and next product 224.
  2. Set Iteration to 1. Read 224, its factors 2 × 2 × 4 and the next product 16. Press Next to read 16 and its next product 6.
  3. Press Finish. Selected iteration is 3 and current number is 6. Next product shows a dash because the single-digit stopping state has no further counted multiplication. Next and Finish are disabled.
  4. Press Previous to return to iteration 2, or select Select step 1 in the ledger to inspect 224 again. Total Persistence remains 3 throughout.
  5. Change Starting number to 105. Selection returns to iteration 0. Its digit factors include zero, so the next product is 0 and Persistence is 1. Compare starting directly at 0, whose Persistence is 0.
  6. Enter 000487. The text keeps its leading zeros, while Canonical starting number is 487 and the three-step chain is unchanged. The module treats the input as an integer, rather than multiplying padding characters.
  7. Press Reset experiment. Starting number returns to 679, selected iteration to 0, current number to 679 and next product to 378. The complete default chain has Persistence 5 and Final digit 6.

Exactly what this explorer calculates

Only base-ten nonnegative integers are supported. The raw input accepts 1–30 ASCII digits; leading zeros count toward this input-length limit but are removed before calculating. Empty input, signs, whitespace, decimals, scientific notation, non-ASCII numerals and longer strings are invalid. Their text remains editable, while result readouts show dashes instead of stale values.

All products use arbitrary-precision integer arithmetic. For thirty nines, the first product is exactly 42391158275216203514294433201. That product contains zero, so the next product is zero and the persistence is 2. The digits are not rounded to floating-point values. Long values wrap, and the ledger scrolls normally; its screen distance is not a measure of numeric magnitude.

This is multiplicative persistence, not repeated digit addition or the usual additive digital root. The module includes no alternate-base control, random sampling, automatic record search or proof of a universal maximum. Historical references may use different conventions for single-digit inputs; the zero-step convention used here is explicit in both the definition and controls.

Read the digit-product problem

These primary sources explain the digit-product definition and why each individual chain terminates. The original 487 calculation and the control experiment in this article were checked separately; neither reference describes this interface.

Experience it interactively

Adjust parameters, observe in real time, and build deep intuition with Riano’s interactive Multiplicative Persistence module.

Try Multiplicative Persistence on Riano →

More in Computer Science