def multi(x):
    a2 = len([e for e in x if e%2==0]) #распределяю мульти-делители по спискам, смотрю их количество
    a3 = len([e for e in x if e%3==0])
    a5 = len([e for e in x if e%5==0])
    return len(x)*(2**a2)*(3**a3)*(5**a5) #длину списка на ввод умножаю на 2 a1 раз (количество мульти-делителей) так со всеми.

def isprime(x):
    sq = int(x**0.5)  #Стандартная функция для определения простоты числа. У каждого составного числа есть делитель до
    for i in range(2,sq+1):                                                                    #Его квадратного корня.
        if x%i==0:      #Перебираем числа в диапазоне от 2 до целой части квадратного корня. Делаем проверку на делимость
            return False  # Нашли делитель - число не простое.
    return x>1 #Если мы делитель не нашли, то мы проверяем, является ли число единицей. Если является - то число не простое

m = 0
for x in range(10000000,10025001):  # Перебираем числа в нашем диапазоне.
    sq = int(x ** 0.5)  # Целая часть квадратного корня числа
    d = set()  # Множество, куда мы будем забивать делители. Множество потому-что в нем не может быть повторений.
    if isprime(x):
        continue
    for i in range(2, sq + 1):  # Перебираем делители.
        if x % i == 0:  # Если мы нашли таковые, то добавляем 2 числа. Само i и x // i в пару.
            d.add(i)
            d.add(x // i)
    d = multi(sorted(d)) #применяю функцию к сортированному списку
    if d > m: #если длина d больше максимума, то максимум равняется длине d
        m = d
        itog = [x for x in str(m) if x in "02468"] #убираю из максимального числа все нечетные цифры
        print(x,len(itog))                         #вывожу число и количество его четных цифр