Pandiyan Mani
1 min readSep 16, 2022

--

Multiple Persistence (Logical Programs)

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

fun persistence(num: Int) : Int {
var numToString = num.toString().length
var numbocc = 0
if(numToString > 1) {
numbocc = 1
var result = num.toString()
result = passAndRunMutiply(result)
while(result.length > 1) {
numbocc++
result = passAndRunMutiply(result)
}
}

return numbocc
}

fun passAndRunMutiply(num: String): String {
var result:Int = 1
for(i in 0 until num.length) {
var numfromString = num[i].toString().toInt()
result = result*(numfromString)
}
return result.toString()
}

--

--