def euklid(b, Z):
    """
    Euclids algorithm to change the basis.

    Returns
    -------
    dict
        A dictionary mapping the i-th position of the new number to its value,
        where higher numbers are more significant.

    Examples
    --------
    >>> euklid(3, 5)
    {1: 1, 0: 2}
    """
    p = 0
    while b**p <= Z:
        p = p+1
    i = p - 1

    y = {}
    while Z != 0 and i > -5:
        y[i] = Z // b**i
        R = Z % b**i
        Z = R
        i = i - 1
    return y