数学
2024-06-18 15:20:38
发布于:上海
16阅读
0回复
0点赞
我们将 这个式子两边同时开 次方得:
也就是说 存在的条件是 为整数。
这个式子无法直接计算,但是变形得:
右式可以使用 <cmath>
中的 std::pow()
函数直接计算。
小提示:浮点题精度一定要高,可以用 long double
,反正不卡时间。
#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
int a[1005];
int main(){
int T;
long double n,y;
cin>>T;
while(T--){
cin>>n>>y;
if(round(pow(y,1.0/n))==round(pow(y,1.0/n)*100000000)/100000000) cout<<round(pow(y,1.0/n));
else cout<<-1;
cout<<endl;
}
return 0;
}
这里空空如也
有帮助,赞一个