У меня маленький такой вопросик =) А что это за 1 вначале всего умножения ? То есть когда 1 * 21. Сам алгоритм я понимаю но не понимаю.
def power(x, y):
res = 1
for d in f'{y:b}':
res *= res
if d == '1':
res *= x
return res
print(power(21, 13))