Source: https://enseignement.alexandre-mesle.com/algoBTS/algoBTS.pdf