# Solving and testing fast exponentiation (part 86ca)

Посмотрим на задачу глазами разработчика: сначала решение, затем убеждаемся в его корректности.

## Задача

Вычислить `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  # и второй случай
```

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

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

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

[делает](https://ukrini.org.ua/%D0%B4%D0%B8%D0%BF%D0%BB%D0%BE%D0%BC-mbi?f=instapaper) · [log2(exp](https://articlescad.com/jennifer-fabri-pelada-videos-ntimos-e-banho-sensual-384578.html) · [степень](https://artofhosting.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/gif-am-yalama-538354.pdf) · [возведения](https://drop.xtrafrancyz.net/selif/aa75fijpjq.pdf) · [result](https://kappa.lol/9dDaTJ) · [умножений](https://hey.xyz/posts/3z7sythhtz9kkn9dee) · [видно](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [Число](https://gall.dcinside.com/mgallery/board/view/?id=thekpop&no=64450) · [становится](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [вызова](https://blogfreely.net/igorcollins26/turbanli-twitter-ifsa) · [привычка](https://loc.edu/wp-content/uploads/event-manager-uploads/event_banner/2026/10/zorbas-adults-only-e445ae.pdf) · [против](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/meia-cassandra-porn-022201.pdf) · [случай](https://ecency.com/@jirikral2369/cielitobebe-videos-y-fotos-filtradas-de-onlyfans-8fef87) · [assert](https://team.writefreely.dev/oz711d48/av4us-dong-hua-uncensored-asian-porn-videos-free-on-demand) · [включая](https://www.sfahba.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/mbi-184c69.pdf) · [алгоритмом](https://statics.pancake.vn/web-media-264/26/d3/c0/7b/4d9be5c2f6884885afb29f2f215947840d08005a5eea7dffa97ceaf8.pdf) · [python](https://djansen573.wixsite.com/my-site-1/post/%D8%BA%D8%B7%D8%A7%D8%A1-%D9%83%D9%86%D8%A8) · [Проверка](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [показателя](https://blog.spikyhair.club/oza7ab90/bocil-diewe) · [быстрого](https://tweet.in.ua/gallery/%D1%81%D1%83%D1%88%D0%B8-%D0%B8-%D1%80%D0%BE%D0%BB%D0%BB%D1%8B-%D1%80%D0%B0%D0%B7%D0%BD%D0%B8%D1%86%D0%B0?f=instapaper) · [сразу](https://discuss.tchncs.de/post/65442367) · [задачу](https://blogfreely.net/nataliarussell2/bubblegumhd-porn) · [корректности](https://clarasimon847.overblog.fr/2026/10/post-7.html)

