← К задачам
Средне · +3Бинарная степеньМодулярная арифметика

Быстрое возведение в степень по модулю

Реализуйте бинарное возведение в степень. Функция power_mod(a, b, m) возвращает (a ** b) % m за O(log b), не вычисляя a ** b напрямую.

Гарантируется b ≥ 0, m ≥ 1. Помните: при m == 1 любой остаток равен 0.

Формат: вход — целые a, b ≥ 0, m ≥ 1; выход — целое в диапазоне [0, m).

Примеры:

power_mod(2, 10, 1000)            -> 24
power_mod(3, 0, 7)                -> 1
power_mod(2, 1000000, 1000000007) -> 235042059
def power_mod(a, b, m):
    # бинарное возведение в степень по модулю
    pass
Для запуска тестов необходима авторизация.
Поддержать проект