Source: https://www.math.u-bordeaux.fr/~ybilu/alg4_exams/exam14_corr.pdf