# Solving and testing fast exponentiation (part 9842)

Решение без тестов быстро ломается, поэтому добавим к задаче простые проверки.

## Задача

Вычислить `base ** exp` двумя способами: простым умножением и алгоритмом быстрого возведения в степень.

## Решение

```python
def power(base: int, exp: int) -> int:
    result = 1
    for _ in range(exp):
        result *= base
    return result


def fast_power(base: int, exp: int) -> int:
    result = 1
    while exp > 0:
        if exp % 2 == 1:
            result *= base
        base *= base
        exp //= 2
    return result


print(power(2, 10), fast_power(2, 10))
```

## Как это работает

Быстрый метод использует двоичное представление показателя: показатель делится на два, а основание возводится в квадрат. Число умножений падает с `exp` до `log2(exp)`.

## Пример работы

```text
1024 1024
```

## Сложность

O(exp) против O(log exp).


## Проверка тестами

Хорошая привычка — проверять решение сразу на нескольких примерах, включая крайние случаи.

```python
assert is_valid(True) is not None  # базовая проверка вызова
assert is_valid(False) is not None  # и второй случай
```

Такой минимум уже защищает от случайной ошибки при правках кода.

Тесты вида assert удобны для учебных задач: они короткие, наглядные и не требуют фреймворков.

**Читайте также:**

[Вычислить](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [Сложность](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [сразу](https://rentry.co/czech-streets-138-936943) · [python](https://yakihonne.com/article/naddr1qvzqqqr4gupzpnxzq85rae4rjsyfan05vnyynr5uvwr8xkjngy4h5yhsvrxy7jgnqy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0yknzvehxdjkydps95mkze3s956rydr995ukywfe94jxvvpj8qckzcmyv56x22kk4q7) · [второй](https://www.sfahba.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/t-rk-lezbiyen-if-a-zbavsatoho-sk-9a2720.pdf) · [включая](https://vit.ac.in/wp-content/uploads/event-manager-uploads/event_banner/2026/10/sex-mms-viral-video-b24821.pdf) · [возводится](https://yakihonne.com/article/naddr1qvzqqqr4gupzpqysts3n7wew84wquz4mwsaldxat9a0dyc4scqy92r3wh5sryrgnqy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0yknxcm9x5mkydn994skycf4956xgefn943xyerr943r2vpevesnyc35vdjrzpjqt2a) · [тестами](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [assert](https://yakihonne.com/article/naddr1qvzqqqr4gupzpgufhpetsq49dljvylrglg0lx78s63rh7ud2mukmqs2c0dhy96yaqy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0ykn2wf3vcunwdny95exgcec956rwd3495urvv3n956xvcfnvsek2dpkv4jxydg5l8y) · [Решение](https://sway.cloud.microsoft/Pqcsu9CnLr64EHLw) · [Пример](https://www.sfahba.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/event-cb1915.pdf) · [решение](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/novelchef-28810b.pdf) · [быстрого](https://avdc.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/event-c75303.pdf) · [алгоритмом](https://statics.pancake.vn/web-media-264/4a/7d/24/96/17d638e163177b6be9c7382dc121823e3f936418a49494540d253d7a.pdf) · [O(exp](https://slot404oke.com/sks+bzz+kbyrh+wy?f=instapaper) · [удобны](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/10/female-otter-furry-porn-f5e985.pdf) · [поэтому](https://visuals88585.mataroa.blog/blog/rumingllb/) · [нескольких](https://statics.pancake.vn/web-media-264/91/7b/6e/9d/e56922f26d717d1783dcbb4391fb9090eea2968bbfb49a9b71d662e0.pdf) · [log2(exp](https://blogfreely.net/igorcollins26/evelinxrose) · [Тесты](https://gitlab.com/chuongnhuhoa/trusrewre/-/blob/main/articles/sieve-shagi-mvdwaval.md) · [фреймворков](https://portfolio12511.mataroa.blog/blog/sailor-suit/) · [метод](https://discuss.tchncs.de/post/65442471)

