アルゴリズムはいたってシンプルだ。ここでは、バンズの数を受け取り、揚げ時間を分単位で返す関数として実装している。

```python
def minutes_to_fry(buns_count: int) -> int:
    return ((buns_count + 1) // 2) * 2
```

これはあまり良い実装とは言えない。なぜなら、コードを見てもどのように問題を解決しているのかがわからないからだ。その上、問題条件の「魔法の定数」（フライパンの容量とパン1個の焼き時間）が関数本体に隠されている。もっとすっきりとわかりやすく書き直したほうがよいかもしれません（たとえば、わかりやすい名前の定数を導入するなど）。

一方、この実装は正しくコンパクトであり、関数を使うことでアルゴリズムをカプセル化することができます：実装の詳細を考えることなく、プログラムのさまざまな場所で関数を呼び出すことができます。
Алгоритм совсем простой. Вот его реализация в виде функции, принимающей число булочек и возвращающей время обжарки в минутах.

```python
def minutes_to_fry(buns_count: int) -> int:
    return ((buns_count + 1) // 2) * 2
```

Это не очень качественная реализация, поскольку при взгляде на код не очевидно, как он решает задачу. К тому же, в тело функции запрятаны «магические константы» из условия задачи (вместительность сковороды и время обжарки одной булочки). Возможно, вы захотите переписать код более чисто и наглядно (например, введя константы с ясными именами).

С другой стороны, эта реализация корректна и компактна, а использование функции позволяет инкапсулировать алгоритм: вы можете вызывать функцию в разных местах своей программы, не задумываясь о деталях её реализации, а когда (и если) захотите сделать её код яснее, это можно будет сделать, не меняя остальных частей программы.