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

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

Примеры

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)])))

python books logo

Английский для программистов

Наш телеграм канал с тестами по английскому языку для программистов. Английский это часть карьеры программиста. Поэтому полезно заняться им уже сейчас

×