https://cpython.pythonprogramminghelp.com/3-tactics-to-sqr/