I have to break them into individual parts because heapvar has a bug which
causes the result to turn zero. Anyways I'm getting the wrong results, and
belive the power and factorial functions are working correctly.