← К задачам
Средне · +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
py
Курс по теме
Пройдите курс «Python с нуля» — по шагам, с проверкой
8 уроков · ~14 ч · теория, упражнения и экзамен с бейджем
Открыть курс →
def power_mod(a, b, m):
    # бинарное возведение в степень по модулю
    pass
Здесь появится результат. Напиши решение слева и нажми «Проверить код».
Для запуска тестов необходима авторизация.