Сколько раз придется умножить?

Напишите функцию. Она должна принимать число, цифры которого будут перемножаться между собой, пока не получится однозначное число. Функция должна вернуть количество операций умножения, которые потребовались для получения этого однозначного числа.

Примеры

multiplication(39) ➞ 3
# Потому что 3 * 9 = 27, 2 * 7 = 14, 1 * 4 = 4, а 4 - однозначное число.

multiplication(999) ➞ 4
# 9 * 9 * 9 = 729, 7 * 2 * 9 = 126, 1 * 2 * 6 = 12, 1 * 2 = 2.

multiplication(4) ➞ 0
# Потому что 4 - однозначное число.

Варианты решения

def multiplication(num):
    return 0 if num < 10 else 1 + multiplication(eval("*".join(str(num))))
from operator import *
from functools import *
def multiplication(num):
    if num <= 9: return 0
    return 1 + multiplication(reduce(mul, map(int, str(num))))
import numpy as np
def multiplication(num):
    if len(str(num)) == 1:
        return 0
    return 1 + multiplication(np.prod(np.array([int(x) for x in str(num)])))

Прокрутить вверх