Несколько способов упрощения деления длинных чисел:
- Сдвиг и вычитание. 1 Если числитель меньше знаменателя, то нужно сдвинуть знаменатель как можно дальше влево, пока он ещё меньше числителя. 1 Затем установить бит в частном для сдвинутой суммы, вычесть сдвинутый знаменатель из числителя и повторить процесс. 1
- Замена двух делений одним. 2 Если скорость работы важна, то можно посчитать только целую часть от деления, а затем уже по ней — остаток от деления (с помощью одной операции умножения). 2
- Деление на короткое число. 3 Нужно по очереди делить каждый разряд длинного числа на короткое, сохранять целую часть, а остаток переносить в предыдущий (младший) разряд. 3
- Длинная арифметика в факторизованном виде. 2 Нужно хранить не само число, а его факторизацию, то есть степени каждого входящего в него простого. 2 В таком виде легко производить операции умножения и деления, но невозможно — сложения или вычитания. 2
Также для работы с большими числами в современных языках программирования можно использовать готовые оптимизированные библиотеки для длинной арифметики. 4