Source: https://edge.edx.org/c4x/BITSX/CSF111_Dubai/asset/c_prg_examples_practice.pdf