R = PolynomialRing(GF(5),['x']); R.inject_variables() P=x^3 + 2*x + 4 Q=x^3 + x^2 + 1 for i in [0..4]: print P(i) for i in [0..4]: print Q(i) for a2 in [0..4]: for a1 in [0..4]: for a0 in [0..4]: if (P(a2*x^2+a1*x+a0) % Q) == 0: print(a2*x^2+a1*x+a0) x^31 % P for a2 in [0..4]: for a1 in [0..4]: for a0 in [0..4]: if ((a2*x^2+a1*x+a0)^4 % Q) == 1: print(a2*x^2+a1*x+a0)