Cleaned up, optimized, and tried to make a quick approximation of n^n!