Python:
import math
def expo(base,power):
#Result variable
res = 1
#Special cases
if(power==0 and base!=0): return 1
if(power==0 and base==0): return -1
if(base==0 and power!=0): return 0
if(base!=0 and power==1): return base
#Evaluating
if(power>=1):
for i in range(1,int(power)+1):
res*=base
return res
if(power>0 and power<1):
#Natural logarithm implementation and approx. result
#First, determine the McLaurin Series expansion
nominator = power*math.log(base)
res+=nominator
for i in range(2,7):
idx = 1
for j in range(i):
idx*=nominator
res+=idx/math.factorial(i)
return res
#Input section
b = float(input("Enter base: "))
p = float(input("Enter power: "))
assert p>=0
print()
print("Result:","Undefined!" if (b==0 and p==0) else expo(b,p),"\\Time Complexity: O("+str(b)+"^"+str(p)+")\\")