https://tomdob1.medium.com/big-o-notation-how-to-identify-factorial-and-exponential-algorithms-8efe9fc9be24