require "algebra/rational"
require "algebra/polynomial"

P = Algebra.Polynomial(Rational, "x")
x = P.var

(x**3 - 3*x + 1).galois_group.each do |g|
  p g
end
#=> [0, 1, 2]
#   [1, 2, 0]
#   [2, 0, 1]]

(x**3 - x + 1).galois_group.each do |g|
  p g
end
#=> [0, 1, 2]
#   [1, 0, 2]
#   [2, 0, 1]
#   [0, 2, 1]
#   [1, 2, 0]
#   [2, 1, 0]


syntax highlighted by Code2HTML, v. 0.9.1