# Singular

### 5.1.140 sqrfree

`Syntax:`
`sqrfree (` poly_expression `)`
`sqrfree (` poly_expression`, 0 )`
`sqrfree (` poly_expression`, 2 )`
`Type:`
list of ideal and intvec
`Syntax:`
`sqrfree (` poly_expression`, 1 )`
`Type:`
ideal
`Syntax:`
`sqrfree (` poly_expression`, 3 )`
`Type:`
poly
`Purpose:`
computes the squarefree factors (as an ideal) of the polynomial together with or without the multiplicities (as an intvec) depending on the second argument:
 ``` 0: returns factors and multiplicities, first factor is a constant. May also be written with only one argument. 1: returns non-constant factors (no multiplicities). 2: returns non-constant factors and multiplicities. 3: returns the product of non-constant factors, i.e. squarefree part ```
`Note:`
Not implemented for the coefficient fields real and finite fields of type `(p^n,a)`.
`Example:`
 ``` ring r=3,(x,y,z),dp; poly f=(x-y)^3*(x+z)*(y-z); sqrfree(f); ==> [1]: ==> _[1]=1 ==> _[2]=-xy+xz-yz+z2 ==> _[3]=-x+y ==> [2]: ==> 1,1,3 sqrfree(f,1); ==> _[1]=-xy+xz-yz+z2 ==> _[2]=-x+y sqrfree(f,2); ==> [1]: ==> _[1]=-xy+xz-yz+z2 ==> _[2]=-x+y ==> [2]: ==> 1,3 sqrfree(f,3); ==> x2y-xy2-x2z-xyz-y2z-xz2+yz2 ```
See factorize.