Connection Status:
Competition Arena > PersistentNumber
SRM 343 · 2007-03-22 · by connect4 · Simple Search, Iteration
Class Name: PersistentNumber
Return Type: int
Method Name: getPersistence
Arg Types: (int)
Problem Statement

Problem Statement

Given a number x, we can define p(x) as the product of the digits of x. We can then form a sequence x, p(x), p(p(x))... The persistence of x is then defined as the index (0-based) of the first single digit number in the sequence. For example, using 99, we get the sequence 99, 9*9 = 81, 8*1 = 8. Thus, the persistence of 99 is 2. You will be given n, and you must return its persistence.

Constraints

  • n will be between 0 and 2,000,000,000, inclusive.
Examples
0)
99
Returns: 2

The example from the problem statement.

1)
268
Returns: 4

The sequence here is 268, 96, 54, 20, 0.

2)
6
Returns: 0

6 is already a single-digit number.

3)
68889789
Returns: 3
4)
86898
Returns: 7

Submissions are judged against all 71 archived test cases, of which 5 are shown here. Case numbers match the judge’s.

Coding Area

Language: C++17 · define a public class PersistentNumber with a public method int getPersistence(int n) · 71 test cases · 2 s / 256 MB per case

Submitting as anonymous