Source: https://dspace.univ-temouchent.edu.dz/bitstream/123456789/344/1/Polycopi%C3%A9_Algorthmique_L1.pdf