Python,查找数字的第n个根

时间:2017-03-14 15:14:28

标签: python

我必须找到n的根。 t表示测试用例的数量。对于每个测试用例,n和m的行用space.output格式分隔:对于每个测试用例,如果是n的整数打印m,则打印-1。

对于我正确完成的每个变量,它也有一些约束。 像1<=t<=10^5 1<n<30 1<=m<=10^9一样。我不知道这个错误。

t= int (input())
if (t>=1) and (t<=100000) :
    while (t>0) :
        no=input()
        e=no.split()
        n=int (e[0])
        m=int (e[1])
        if(n>1) and (n<30) and (m>=1) and (m<=1000000000):
            k=m**(1/n)
            if (k==int(k)) :
                print (int(k))
            else :
                print(-1)
        else :
            print(-1)
        t=t-1
else:
    print(-1)

1 个答案:

答案 0 :(得分:0)

以下代码有效:


import math
t= int (input())
if (t>=1) and (t<=100000) :
    while (t>0) :
        no=input()
        e=no.split()
        n=int (e[0])
        m=int (e[1])
        if(n>1) and (n<30) and (m>=1) and (m<=1000000000):
            k=m**(1/n)
            #print(math.ceil(k*100)/100)
            l=int (math.ceil(k*100)/100)
            #print(l**n)
            r=l**n
            if (r==m) :
                print (l)
            else :
                print(-1)
        else :
            print(-1)
        t=t-1