CCF-GESP计算机学会等级考试2024年12月二级C++T1寻找数字
·
[GESP202412 二级] 寻找数字
题目描述
小杨有一个正整数 aaa,小杨想知道是否存在一个正整数 bbb 满足 a=b4a=b^4a=b4。
输入格式
第一行包含一个正整数 ttt,代表测试数据组数。
对于每组测试数据,第一行包含一个正整数代表 aaa。
输出格式
对于每组测试数据,如果存在满足条件的正整数 bbb,则输出bbb,否则输出 −1-1−1。
样例 #1
样例输入 #1
3
16
81
10
样例输出 #1
2
3
-1
提示
对于全部数据,保证有 1≤t≤1051\leq t\leq 10^51≤t≤105,1≤ai≤1081\leq a_i\leq 10^81≤ai≤108。
解析
开根号再开根号求出四次方根,然后取整验证,详见代码:
#include<bits/stdc++.h>
using namespace std;
int main() {
int t;
cin >> t;
while(t--) {
int a;
cin >> a;
int b = sqrt(sqrt(a));
if (b * b * b * b == a) {
cout << b << "\n";
} else {
cout << -1 << "\n";
}
}
return 0;
}
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)