from typing import Tuple
import math


def most_square_product(n: int) -> Tuple[int, int]:
    """
    Heuristic to get two square-like integers that when multiplied yield the input

    :param n: given number $n$
    :return: lower and higher integer
    """
    o = math.ceil(math.sqrt(n))
    m = o - 1
    if o ** 2 == n:
        return o, o
    else:
        i = 0
        while o * m != n and m != 1:
            if i % 2 == 0:
                # Every even iteration
                o += 1
            else:
                # Every odd iteration
                m -= 1
            # Increase iteration count
            i += 1
        return m, o