Problem:


  MathJax.Hub.Config({ tex2jax: { inlineMath: [["$","$"], ["\\(","\\)"]], processEscapes: true }});

３乗根

$x^3 = q$ の解は漸化式 $x_{n+1} = x_n - \frac{x_{n}^3 - q}{3x_{n}^2}$ を計算していくことで近似的に求めることができます。

$x_1$ に正の数 $\frac{q}{2}$ をいれ

$x_2 = x_1 - \frac{x_{1}^3 - q}{3x_{1}^2}$、$x_3 = x_2 - \frac{x_{2}^3 - q}{3x_{2}^2}$、…　と計算します。

この計算をしながら、

$|x^3 - q|$ の値が、十分小さくなったところで、計算をやめ、最後に計算した $x_n$ を $x^3 = q$ の近似解とします。

の解は漸化式 

 

を計算していくことで近似的に求めることができます。

 に正の数 をいれ

 、 、…　と計算します。

この計算をしながら、

 の値が、十分小さくなったところで、計算をやめ、最後に計算した を

の近似解とします。

-->

この方法に従って、入力された正の整数 $q$ に対し、 $q$ の３乗根の近似値を出力するプログラムを作成してください。ただし、「十分小さくなった」という判定は $|x^3 - q| < 0.00001 q$ を用いてください。

入力

複数のデータセットが与えられる。各データセットに $q$ ($1 \leq q < 2^{31}$)（整数）が一行に与えられる。入力の終わりは -1 である。

データセットの数は 50 を超えない。

出力

各データセットに対して $x$ （実数）を１行に出力する。出力結果に 0.00001 以下の誤差を含んでもよい。

Sample Input

15
15
-1

Output for the Sample Input

2.466212
2.466212



Sample input:
15
15
-1


Sample output:
2.466212
2.466212

Submission status: Accepted

Solution code:
while True :
    q = int(input())

    if q == -1 :
        break

    else :
        x = q / 2

        while abs(x ** 3 - q) >= 0.00001 * q :
            x -= ((x ** 3 - q) / (3 * x ** 2))

        print(f"{x:.6f}")

Submission status: Accepted

Solution code:
while True:
  q = int(input())
  if q == -1:
    break
  x = q / 2
  end = q * 10 ** -5
  while abs(x ** 3 - q) >= end:
    x = (2 * x ** 3 + q) / (3 * x ** 2)
  print(f'{x:.6f}')

Submission status: Accepted

Solution code:
import sys
import math
def three(n,p):
    m=float(n)-((math.pow(n,3)-p)/(3*math.pow(n,2)))
    if((math.fabs((m*m*m)-p))<0.00001*p):
        return m
    else:
        return (three(m,p))
i=0
while i<50:
    q=int(input())
    if(q==-1):
        break
    a=float(q)/2
    three_pow=three(a,q)
    print(str('{:.06f}'.format(three_pow)))

Submission status: Accepted

Solution code:
def cubeRoot(q):
    x = q / 2
    while abs(x ** 3 - q) >= (0.00001 * q):
        x = (2 * x ** 3 + q) / (3 * x ** 2)
    return x
    
while True:
  q = int(input())
  if q == -1:
    break
  print(cubeRoot(q))

Submission status: Accepted

Solution code:
while True:
    q = int(input())
    if q < 0:
        break
    ep = q / 1e5
    x = q/2
    while True:
        x = x - (x**3-q)/(3*(x**2))
        
        if abs(x**3 -q) < ep:
            break
    
    print("{:.6f}".format(x))

Submission status: Accepted

Solution code:
while 1:
    try:
        q = float(input())
        if q == -1:
            break
        x = q/2
        while abs(x ** 3 - q) >= 0.00001 * q:
            x = x - (x ** 3 - q) / (3 * x ** 2)
        print(x)

    except:
        break

Submission status: Accepted

Solution code:
def calc_third_root(q):
    x = q / 2
    while not (abs(x ** 3 - q) < 0.00001 * q):
        x = x - (x ** 3 - q) / (3.0 * x ** 2)
    return x

while 1:
    q = int(input())
    if q == -1:
        break
    result = calc_third_root(q)
    print("{:.6f}".format(result))

Submission status: Accepted

Solution code:
while True:
    q = int(input())
    if q == -1:
        break
    x = q / 2
    while abs(x**3 - q) >= 0.00001 * q:
        x = x - (x**3 - q) / (3 * x**2)
    print(x)

Submission status: Accepted

Solution code:
while 1:
    q=int(input())
    if q==-1:break
    ans=q/2
    while abs(ans**3-q)>=q*10**-5:
        ans-=(ans**3-q)/(3*ans**2)
    print(ans)

Submission status: Accepted

Solution code:
def tri(q):
    x = q/2
    while(abs(x**3-q) >= 0.00001*q):
        x = x - (x**3-q)/(3*x**2)
    return x

while(1):
    n = int(input())
    if n == -1:
        break
    print("{:.6f}".format(tri(n)))

Submission status: Accepted

Solution code:
for q in iter(input,'-1'):
    q=float(q)
    x=q/2
    while abs(x*x*x-q)>=q*.00001:
        x-=(x*x*x-q)/3/x/x
    print(x)

Submission status: Runtime Error

Solution code:
def third_root(q):
    x=q/2.0
    while abs(x**3-q)>=q*10**(-5):
        x=x-(x**3-q)/(3*x**2)
    return x
while 1:
    q=input()
    if q==-1:break
    ans=third_root(q)
    print(ans)

Submission status: Runtime Error

Solution code:
def third_root(q):
    x=q/2
    while abs(x**3-q)>=q*10**(-5):
        x=x-(x**3-q)/(3*x**2)
    return x
while 1:
    q=input()
    if q==-1:break
    ans=third_root(q)
    print(ans)

Submission status: Runtime Error

Solution code:
import sys
for e in sys.stdin:print(float(e)**(1/3))


####################################################
####################################################
####################################################
####################################################
####################################################
####################################################
####################################################
####################################################
####################################################
####################################################
########################################################################################################
####################################################
####################################################
########################################################################################################v
############################################################################################################################################################
####################################################
####################################################
####################################################
########################################################################################################v
vv####################################################

Submission status: Runtime Error

Solution code:
while 1:
    print(float(input())**(1/3))
    if q<0:break


####################################################
####################################################
####################################################
####################################################
####################################################
####################################################
####################################################
####################################################
####################################################
####################################################
########################################################################################################
####################################################
####################################################
########################################################################################################v
############################################################################################################################################################
####################################################
####################################################
####################################################
########################################################################################################v
vv####################################################

Submission status: Runtime Error

Solution code:
while 1:
    q=float(input())
    if q<0:break
    print(q**(1/3))


####################################################
####################################################
####################################################
####################################################
####################################################
####################################################
####################################################
####################################################
####################################################
####################################################
########################################################################################################
####################################################
####################################################
########################################################################################################v
############################################################################################################################################################
####################################################
####################################################
####################################################
########################################################################################################v
vv####################################################

Submission status: Runtime Error

Solution code:
while 1:
    q=float(input())
    if q<0:break
    print(q**(1/3))


####################################################
####################################################
####################################################
####################################################
####################################################
####################################################
####################################################
####################################################
####################################################
####################################################
########################################################################################################
####################################################
####################################################
########################################################################################################
############################################################################################################################################################
####################################################
####################################################
####################################################
########################################################################################################v
vv####################################################