This program determines if for a given polynomial f  over Z_{p^a} the equation f=0 is solvable or not.

Pexpo[f0_Integer, p_Integer] := 
      Module[{pfactor}, 
        pfactor = 
          Select[FactorInteger[f0], #1[[1]] == p &, 
            1]; 
If[
          Length[pfactor] ≠ 0,  pfactor[[1]][[2]], 
          0]
]

IsSolvableQ[poly_?PolynomialQ, x_Symbol, p_Integer] := 
      Module[{coeffs, constantexponent}, 
coeffs = 
          CoefficientList[poly, x]; 
If[
          Length[coeffs] == 0  || coeffs[[1]] == 0, 
          Return[True]]; 
constantexponent = 
          Pexpo[coeffs[[1]], p]; 
! Apply[And, 
            Map[Pexpo[#1, p] > constantexponent  || #1 == 0 &, 
              Delete[coeffs, 1]]]
]

IsSolvableQ[3, x, 2]

IsSolvableQ[4 + 2  x, x, 2]

IsSolvableQ[2 + 34  x + 45  x^23, x, 117]

IsSolvableQ[2 + 113  x + 226  x^23, x, 113]