[GESP202412 二级] 寻找数字

题目描述

小杨有一个正整数 aaa,小杨想知道是否存在一个正整数 bbb 满足 a=b4a=b^4a=b4

输入格式

第一行包含一个正整数 ttt,代表测试数据组数。

对于每组测试数据,第一行包含一个正整数代表 aaa

输出格式

对于每组测试数据,如果存在满足条件的正整数 bbb,则输出bbb,否则输出 −1-11

样例 #1

样例输入 #1

3
16
81
10

样例输出 #1

2
3
-1

提示

对于全部数据,保证有 1≤t≤1051\leq t\leq 10^51t1051≤ai≤1081\leq a_i\leq 10^81ai108

解析

开根号再开根号求出四次方根,然后取整验证,详见代码:

#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;
}
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐