def root(n, rec=100, a=1, c=1):return a if rec == 0 else root(n, rec - 1, a, c/10) if (a+c) * (a+c) > n else root(n, rec - 1, a + c, c)
def cubic_root(n, rec=100, a=1, c=1):return a if rec == 0 else cubic_root(n, rec - 1, a, c/10) if (a+c) * (a+c) * (a+c) > n else cubic_root(n, rec - 1, a + c, c)
print(root(2), 2**0.5)
print(root(3), 3**0.5)
print(cubic_root(2), 2**(1/3))
print(cubic_root(3), 3**(1/3))
こんな感じで少しずつまとめてます。
作ってみたくなったので作ってみました。
精度は**の方が100兆分の1ほど高いです。