Skip to content

Latest commit

 

History

History
43 lines (33 loc) · 1.05 KB

persistent-bugger.md

File metadata and controls

43 lines (33 loc) · 1.05 KB

Persistent Bugger 6 Kyu

LINK TO THE KATA - FUNDAMENTALS

Description

Write a function, persistence, that takes in a positive parameter num and returns its multiplicative persistence, which is the number of times you must multiply the digits in num until you reach a single digit.

For example (Input --> Output):

39 --> 3 (because 3*9 = 27, 2*7 = 14, 1*4 = 4 and 4 has only one digit)
999 --> 4 (because 9*9*9 = 729, 7*2*9 = 126, 1*2*6 = 12, and finally 1*2 = 2)
4 --> 0 (because 4 is already a one-digit number)

Solution

const getMultiplication = number => {
  return String(number)
    .split('')
    .reduce(
      (multipliedNumber, currentNumber) =>
        multipliedNumber * Number(currentNumber),
    )
}

const persistence = number => {
  let counter = 0

  while (String(number).length > 1) {
    number = getMultiplication(number)
    counter++
  }

  return counter
}