我必须找到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)
答案 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