Задание №3
    В данном задании необходимо реализовать класс длинного числа со small-object и copy-on-write оптимизациями.
    Длинное число должно удовлетворять всем требованиям задания 2 плюс:
    
      - Если в big_integer хранится число -2N ≤ a ≤ 2N-1, big_integer не должен выделять
      динамическую память. Конкретное значение N вы можете выбрать самостоятельно, допустимыми являются
      любые N ≥ 30.
- Числа a < -2N и a > 2N-1 должны выделять
      не больше одного блока динамической памяти на каждый экземпляр big_integer.
- Конструктор копирования и оператор присваивания должны работать за O(1) и удовлетворять гарантии
      безопасности исключений nothrow.
      
        