Source: http://www.cmap.polytechnique.fr/~trabelsi/td1-corrige.pdf