Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Uncategorized category for Super Root by Rounin
import math
def mypow(a, b):
try:
return pow(a, b)
except:
return math.inf
def super_root(number):
low = 0
high = number
est = -1
res = -number
while abs(res-number) > 0.001:
est = (low+high)/2.0
res = mypow(est, est)
if res > number:
high = est
elif res < number:
low = est
else:
return est
return est
if __name__ == '__main__':
#These "asserts" using only for self-checking and not necessary for auto-testing
def check_result(function, number):
result = function(number)
if not isinstance(result, (int, float)):
print("The result should be a float or an integer.")
return False
p = result ** result
if number - 0.001 < p < number + 0.001:
return True
return False
assert check_result(super_root, 4), "Square"
assert check_result(super_root, 9), "Cube"
assert check_result(super_root, 81), "Eighty one"
Sept. 29, 2017