import "sys" as system
// returns base raised to exponent power as long as exponent is non-negative integer
method simpleRecPower(base:Number, exponent: Number) -> Number {
   if (exponent == 0) then {
       1
    } else {
       base * simpleRecPower(base,exponent-1)
    }
}

// returns base raised to exponent power as long as exponent is non-negative integer
method fastRecPower(base:Number, exponent: Number) -> Number {
   if (exponent == 0) then {
       1
    } elseif ((exponent % 2) == 1) then {
       base * fastRecPower(base,exponent-1)
    } else {
          fastRecPower(base * base, exponent/2)
    }
}

def startTime: Number = system.elapsed
def power: Number = simpleRecPower(2,100)
def endTime: Number = system.elapsed
def fastpower: Number = fastRecPower(2,100)
def endfastTime: Number = system.elapsed
print ("{power} takes time {endTime-startTime} or {endfastTime-endTime}")