Я изучал эту ссылку из Википедии по модулю большого числа. Вот псевдокод.
function modular_pow(base, exponent, modulus)
result := 1
while exponent > 0
if (exponent mod 2 == 1):
result := (result * base) mod modulus
exponent := exponent >> 1
base = (base * base) mod modulus
return result
Я не понимаю объяснение, данное в вики. Почему я должен проверять, является ли exp%2 четным или нечетным. также почему я делаю три операции?