Source: http://www.normalesup.org/~vripoll/MAT1112_Corrige_Examen1_oct2011.pdf