Различие между способами выполнения умножения и деления больших чисел заключается в используемых алгоритмах:
- Умножение. 1 В классической длинной арифметике нужно перемножить каждый разряд одного числа на каждый разряд другого и добавить результат к определённому разряду произведения. 1 Также к большим числам применимы алгоритмы быстрого умножения, например, быстрое преобразование Фурье и алгоритм Карацубы. 3
- Деление. 1 Деление длинного числа на другое длинное реализуется достаточно сложно. 1 Деление на короткое число (меньше размера разряда), напротив, реализуется просто: по очереди делят каждый разряд длинного числа на короткое, сохраняют целую часть, а остаток переносят в предыдущий (младший) разряд. 1
Ещё одно различие заключается в том, что для работы с большими числами используются разные методы их представления:
- Классическая длинная арифметика. 3 Число хранится в виде массива его цифр. 3 Операции над числами в этом виде длинной арифметики производятся с помощью школьных алгоритмов сложения, вычитания, умножения, деления столбиком. 3
- Длинная арифметика в факторизованном виде. 3 Идея метода в том, чтобы хранить не само число, а его факторизацию, то есть степени каждого входящего в него простого. 3 Этот метод экономит память в сравнении с классическим подходом и позволяет производить умножение и деление значительно быстрее. 3