https://tornado.pythonprogramminghelp.com/3-questions-you-must-ask-before-number-theory/