from typing import Tuple


def kaprekar_function(n: int) -> Tuple[int, int]:
    """Функция Капрекара.
    Совершает действие: вычислить разницу между числом, 
    состоящим из цифр исходного числа, стоящих по убыванию, 
    и числом, состоящим из цифр исходного числа, стоящих 
    по возрастанию. 
    Шаги прекращаются когда число совпадает 
    с постоянной Капрекара.
    Подробнее см.: https://en.wikipedia.org/wiki/Kaprekar%27s_routine

    >>> kaprekar_function(876)
    (495, 5)
    >>> kaprekar_function(3412)
    (6174, 3)
    
    :param n: исходное число
    :type n: int
    :return: пару чисел (x, y), где x - константа к которой 
             сходится исходное число, y - число шагов.
    :rtype: Tuple[int, int]
    """
    count = 0
    old_n = 0
    while n != old_n and n > 0:
        old_n = n
        digits = list(str(n))
        n1 = int(''.join(sorted(digits, reverse=True)))
        n2 = int(''.join(sorted(digits)))
        n = n1 - n2
        count += 1
    return old_n, count - 1 if count > 1 else count