'''
Напишите программу, которая ищет среди целых чисел,
принадлежащих числовому отрезку [25317; 51237],
которые имеют хотя бы 6 различных простых делителей.
Делители 1 и само число не учитываются.
Запишите в ответе для каждого найденного числа само число и
его максимальный простой делитель.
'''


for number in range(25317, 51237 + 1):

    number_copy = number
    cnt = 0
    mx_divisor = 0

    # Перебираем все делители от 2 до корня числа,
    # считая количество делителей.
    # Вообще-то эффективнее через while,
    # а я всегда бегу до корня, хотя уже число и "закончилось".
    # Но так код понятнее.
    for divisor in range(2, int(number**0.5) + 1):
        if number_copy % divisor == 0:
            cnt += 1
            mx_divisor = divisor
        # делим число на делитель пока оно на него делится
        while number_copy % divisor == 0:
            number_copy //= divisor
    else:
        # учитываем делитель, который больше корня из числа,
        # если есть, то он один, вроде
        if number_copy > 1:
            cnt += 1
        if cnt >= 6:
            print(number, mx_divisor)
