Not to reinvent the wheel. Checking the library :
using GaloisFields
const F = @GaloisField 5
squareroots(k)=[x for x in F if x*x==k]
#just to check, that for example 3 is not a perfect square
for k in F
println(squareroots(k))
end
#so we will construct F[√3]
const G, β =GaloisField(5, :β => [-3, 0, 1]) #minimal polynomial X^2-3
#checking that we have a field with 25 elements by finding the inverse of every non nul élément
for g in G
if !iszero(g)
print(g); print(" × "); print(g^-1);print(" = ");println(g*g^-1)
end
end