"""
Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [244143; 367821], числа, имеющие
ровно 5 различных делителей. Выведите эти делители для каждого найденного числа в порядке возрастания.
"""
from typing import List, Tuple


def get_divisors(number: int, limit: int) -> List[int]:
    divisors = []
    for i in range(1, int(number ** 0.5) + 1):
        if number % i == 0:
            divisors.append(i)
            if i * i != number:
                divisors.append(number // i)
        if len(divisors) == limit + 1:
            return divisors
    return divisors


def solve(low: int, high: int, div_limit: int) -> List[List[int]]:
    result = []
    for num in range(low, high + 1):
        divisors = get_divisors(num, div_limit)
        if len(divisors) == 5:
            result.append(sorted(divisors))

    return result

"""
Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [244143; 367821], числа, имеющие
ровно 5 различных делителей. Выведите эти делители для каждого найденного числа в порядке возрастания.
"""
from typing import List, Tuple


def get_divisors(number: int, limit: int) -> List[int]:
    divisors = []
    for i in range(1, int(number ** 0.5) + 1):
        if number % i == 0:
            divisors.append(i)
            if i * i != number:
                divisors.append(number // i)
        if len(divisors) == limit + 1:
            return divisors
    return divisors


def solve(low: int, high: int, div_limit: int) -> List[List[int]]:
    result = []
    for num in range(low, high + 1):
        divisors = get_divisors(num, div_limit)
        if len(divisors) == 5:
            result.append(sorted(divisors))

    return result

Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [244143; 367821], числа, имеющие ровно 5 различных делителей. Выведите эти делители для каждого найденного числа в порядке возрастания.