Section ZpolyScale.
Definition zcontents p :=
sgz (lead_coef p) * \big[gcdn/0%N]_(i < size p) `|(p`_i)%R|%N.
Definition zprimitive p := map_poly (divz^~ (zcontents p)) p.

Lemma zprimitive_min p a q :
p != 0 -> p = a *: q ->
{b | sgz b = sgz (lead_coef q) & q = b *: zprimitive p}.