https://medium.com/tutscenter/calculate-factorial-top-python-interview-questions-series-3-100-3864b1b1285e