Задача 813
XOR-степени

Будем использовать $x\oplus y$ для обозначения побитной операции XOR на $x$ и $y$.

Определим XOR-произведение $x$ и $y$, обозначаемое $x \otimes y$, аналогично умножению в столбик в двоичной системе счисления за тем лишь исключением, что над промежуточными результатами выполняется операция XOR вместо обычного целочисленного сложения.

Например, $11 \otimes 11 = 69$ или, в двоичной системе счисления, $2$, $1011_2 \otimes 1011_2 = 1000101_2$:

$$ \begin{align*} \phantom{\otimes 1111} 1011_2 \\ \otimes \phantom{1111} 1011_2 \\ \hline \phantom{\otimes 1111} 1011_2 \\ \phantom{\otimes 111} 1011_2 \phantom{9} \\ \oplus \phantom{1} 1011_2 \phantom{999} \\ \hline \phantom{\otimes 11} 1000101_2 \\ \end{align*} $$ Далее определим $P(n) = 11^{\otimes n} = \overbrace{11\otimes 11\otimes \ldots \otimes 11}^n$. Например, $P(2)=69$.

Найдите $P(8^{12}\cdot 12^8)$. В качестве ответа приведите остаток от деления полученного результата на $10^9+7$.

Оригинал
 
© Проект Эйлера | Translated problems from ProjectEuler.net