gesp(二级)(17)洛谷:B4064:[GESP202412 二级] 寻找数字
gesp(二级)(17)洛谷:B4064:[GESP202412 二级] 寻找数字
题目描述
小杨有一个正整数 a a a,小杨想知道是否存在一个正整数 b b b 满足 a = b 4 a=b^4 a=b4。
输入格式
第一行包含一个正整数 t t t,代表测试数据组数。
对于每组测试数据,第一行包含一个正整数代表 a a a。
输出格式
对于每组测试数据,如果存在满足条件的正整数 b b b,则输出 b b b,否则输出 − 1 -1 −1。
样例 #1
样例输入 #1
3
16
81
10
样例输出 #1
2
3
-1
提示
对于全部数据,保证有 1 ≤ t ≤ 1 0 5 1\leq t\leq 10^5 1≤t≤105, 1 ≤ a i ≤ 1 0 8 1\leq a_i\leq 10^8 1≤ai≤108。
AC代码(100分)
#include<bits/stdc++.h>
using namespace std;
//使用sqrt函数
int t,a,b;
int main(){
cin>>t;
while(t--){
cin>>a;
b=sqrt(a);
b=sqrt(b);
if(b*b*b*b==a) cout<<b<<endl;
else cout<<-1<<endl;
}
return 0;
}
文末彩蛋:
点击王老师青少年编程主页有更多精彩内容