Source: https://pages.saclay.inria.fr/olivier.temam/teaching/x/exams/exam_01-02.pdf