MModuloSprig
Рабочая среда с ИИ для кода

Целочисленное модульное возведение в степень

ModuloSprig поддерживает ИИ-диалоги о целочисленной арифметике в папке проекта. Подключите совместимую конечную точку, изучите последовательное возведение в квадрат и проверьте ограничения операндов перед применением правок.

● ● ●ModuloSprig●
Конкретная отправная точка · Целочисленное модульное возведение в степень ×
def mod_power(base, exponent, modulus):
    if any(type(v) is not int for v in (base, exponent, modulus)):
        raise ValueError("operand.integer")
    if exponent < 0 or modulus <= 0:
        raise ValueError("operand.range")
    result = 1 % modulus
    base %= modulus
    while exponent:
        if exponent & 1:
            result = result * base % modulus
        base = base * base % modulus
        exponent >>= 1
    return result
✳Вычислите целочисленную степень по положительному целому модулю последовательным возведением в квадрат.
✓ ИзмененияПроверьте перед применением ↗
Иллюстрация рабочей среды
01

Проверьте перед применением

Сравните фактическое поведение с ожидаемым. Если проверка не проходит, разберитесь в причине перед следующими изменениями.

02

Подключение

Базовый URL, учётные данные и доступный сервер.

03

Проект

Проверьте отрицательное основание, нулевую степень и модуль один, отклоняя отрицательные степени, нецелые и логические операнды до умножения.

Сценарии

Целочисленное модульное возведение в степень

Сценарии ↗
Конкретная отправная точка
def mod_power(base, exponent, modulus):
    if any(type(v) is not int for v in (base, exponent, modulus)):
        raise ValueError("operand.integer")
    if exponent < 0 or modulus <= 0:
        raise ValueError("operand.range")
    result = 1 % modulus
    base %= modulus
    while exponent:
        if exponent & 1:
            result = result * base % modulus
        base = base * base % modulus
        exponent >>= 1
    return result
Рабочая среда с ИИ для кода

Здесь начинается ваше следующее изменение.

Скачать для Windows ↗