Squarefree polynomial factorization
The calculator extracts square factors from the input polynomial.
A univariate squarefree polynomial p(x) has no square factors: q^{2}(x), where q(x)  positive degree polynomial.
The calculator below factorizes an input polynomial into square factors if any. The input polynomial should be primitive (i.e. all the coefficients must be coprime), otherwise the calculator produces a constant factor equals to polynomial content.
The coefficients can be integer, complex number, fraction or complex fraction.
It produces square free factors along with their exponent.
The calculator uses Yun's squarefree factorization algorithm, which is described just below the calculator.
Yun squarefree factorization algorithm
The algorithm pseudo code: ^{1}
//Input polynomial (must be primitive)
a(x);
//Derivative calculation
b(x) ⟵ a'(x)
//Greatest common divisor calculation
c(x) ⟵ gcd( a(x), b(x) )
i=1
if c(x)=0 {
w(x) ⟵ a(x)
} else {
w(x) ⟵ a(x)/c(x)
y(x) ⟵ b(x)/c(x)
z(x) ⟵ y(x)  w'(x)
while( z(x)!=0 ) {
g(x) ⟵ gcd(w(x),z(x))
output ⟵ g(x)^i
i⟵ i + 1
w(x) ⟵ w(x) / g(x)
y(x) ⟵ z(x) / g(x)
z(x) ⟵ y(x)  w'(x)
}
}
output ⟵ w(x)^i

Keith O. Geddes, Stephen R. Czapor, George Labahn, Algorithms for Computer Algebra. Kluwer Academic Publishers, 1992, p. 342 ↩
Comments