from hashlib import sha256 as sha

def sha256(n):
    return int(sha(n.to_bytes(256,"big")).hexdigest(),base=16)

def compute_mapping(k, base):
    result=[-1]*base
    i=1

    while -1 in result:
        k=sha256(k)
        result[k%base]=i
        i+=1

    return result

def decompose(num, base, k):
    sign, num=(1, num) if num>=0 else (-1, -num)

    mapping=compute_mapping(k, base)

    digits=[]
    while num:
        digits.append(mapping[num%base])
        num//=base

    return sign, digits

def format_decomp(sign, digits, base, k):
    terms=[f"(sha256^{d}({k}) mod {base})⋅{base}^{i}" for i,d in enumerate(digits)]
    res="\n\t\t+ ".join(terms[::-1])

    if sign==-1:
        res=f"-({res})"

    return res

base=4096
k=746

num=int(input("Enter number: "))

sign, digits=decompose(num, base, k)

print(num, "=", format_decomp(sign, digits, base, k))


