Я хочу быстро разложить многочлен над кольцом целых чисел (исходный многочлен имеет целые коэффициенты и все коэффициенты имеют целочисленные коэффициенты).
Например, я хочу разложить 4*x^6 + 20*x^5 + 29*x^4 - 14*x^3 - 71*x^2 - 48*x
как (2*x^4 + 7*x^3 + 4*x^2 - 13*x - 16)*(2*x + 3)*x
.
Какой алгоритм я должен выбрать, чтобы избежать сложности кода и неэффективности подхода (говоря об общем количестве арифметических операций и потреблении памяти)?
Я собираюсь использовать язык программирования C.
Например, могут быть некоторые хорошие алгоритмы для полиномиальной факторизации над кольцом целых чисел по модулю простого числа?