Некоторые способы оптимизации длинных арифметических вычислений в современном программировании:
- Классическая длинная арифметика. e-maxx.ru Число хранится в виде массива его цифр. e-maxx.ru Для операций над числами используют алгоритмы сложения, вычитания, умножения, деления столбиком. e-maxx.ru Также применяют алгоритмы быстрого умножения, например быстрое преобразование Фурье и алгоритм Карацубы. e-maxx.ru
- Длинная арифметика в факторизованном виде. e-maxx.ru Хранят не само число, а его факторизацию, то есть степени каждого входящего в него простого. e-maxx.ru Этот метод экономит память и позволяет быстрее производить умножение и деление, но сложение или вычитание выполнить невозможно. e-maxx.ru
- Длинная арифметика по системе простых модулей. e-maxx.ru Выбирают систему модулей (обычно небольших, помещающихся в стандартные типы данных) и хранят число в виде вектора из остатков от его деления на каждый из этих модулей. e-maxx.ru
- Длинная арифметика в несократимых дробях. e-maxx.ru Число представляют в виде несократимой дроби, где числитель и знаменатель — целые числа. e-maxx.ru Все операции над дробными числами сводят к операциям над числителями и знаменателями этих дробей. e-maxx.ru
- Выделение позиции плавающей точки в отдельный тип. e-maxx.ru Этот приём используют, когда нужно производить расчёты с очень большими либо очень маленькими числами, но не допускать их переполнения. e-maxx.ru
Для работы с большими числами в современных языках программирования есть готовые оптимизированные библиотеки. ru.wikipedia.org Например, встроенные библиотеки работы с большими числами есть в PascalABC.NET, Ruby, Python и Java. ru.wikipedia.org