4656: 【GESP2412二级】寻找数字

内存限制:64 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:8 解决:3

题目描述

小杨有一个正整数 ,小杨想知道是否存在一个正整数  满足 

输入

第一行包含一个正整数$t$ ,代表测试数据组数。
对于每组测试数据,第一行包含一个正整数代表$a$ 。

输出

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

样例输入 复制

3
16
81
10

样例输出 复制

2
3
-1

提示

#include <iostream>
#include <cmath>
using namespace std;
int main() {
    int t;
    cin >> t;
    while (t--) {
        int a;
        scanf("%d",&a);
        int b = (int)(sqrt(sqrt(a)));
        if (b * b * b * b == a) {
            printf("%d\n",b);
        } else {
            printf("-1\n",b);
        }
    }
    return 0;
}