def zeckendorf_that_number(n):
a, b, total, check, f_list, r_list = 1, 1, 0, True, [], []
while b <= n:
f_list.append(b)
a = a + b
b = a - b
f_list.reverse()
for i in f_list:
if i + total <= n and check:
total, check = total + i, False
r_list.append(i)
elif not check:
check = True
return list(map(str, r_list))
challenge_input = list(map(int, '5\n120\n34\n88\n90\n320'.splitlines()[1:]))
for i in challenge_input:
print(str(i) + ' = ' + ' + '.join(zeckendorf_that_number(i)))
ZGVmIHplY2tlbmRvcmZfdGhhdF9udW1iZXIobik6CiAgICBhLCBiLCB0b3RhbCwgY2hlY2ssIGZfbGlzdCwgcl9saXN0ID0gMSwgMSwgMCwgVHJ1ZSwgW10sIFtdCiAgICB3aGlsZSBiIDw9IG46CiAgICAgICAgZl9saXN0LmFwcGVuZChiKQogICAgICAgIGEgPSBhICsgYgogICAgICAgIGIgPSBhIC0gYgogICAgZl9saXN0LnJldmVyc2UoKQogICAgZm9yIGkgaW4gZl9saXN0OgogICAgICAgIGlmIGkgKyB0b3RhbCA8PSBuIGFuZCBjaGVjazoKICAgICAgICAgICAgdG90YWwsIGNoZWNrID0gdG90YWwgKyBpLCBGYWxzZQogICAgICAgICAgICByX2xpc3QuYXBwZW5kKGkpCiAgICAgICAgZWxpZiBub3QgY2hlY2s6CiAgICAgICAgICAgIGNoZWNrID0gVHJ1ZQogICAgcmV0dXJuIGxpc3QobWFwKHN0ciwgcl9saXN0KSkKCmNoYWxsZW5nZV9pbnB1dCA9IGxpc3QobWFwKGludCwgJzVcbjEyMFxuMzRcbjg4XG45MFxuMzIwJy5zcGxpdGxpbmVzKClbMTpdKSkKZm9yIGkgaW4gY2hhbGxlbmdlX2lucHV0OgogICAgcHJpbnQoc3RyKGkpICsgJyA9ICcgKyAnICsgJy5qb2luKHplY2tlbmRvcmZfdGhhdF9udW1iZXIoaSkpKQ==