Rad - 题目 - Daimayuan Online Judgehttp://oj.daimayuan.top/problem/744
容易想到n有平方因子才能构造出其不等式
#define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <cstdio> #include <string> #include <algorithm> #include <vector> #include <queue> #include <stack> #include <cstring> #include <set> #include <cmath> #include <map> typedef long long ll; typedef unsigned long long ull; using namespace std; const int MN = 65005; const int MAXN = 1e6 + 10; const int INF = 0x3f3f3f3f; #define IOS ios::sync_with_stdio(false); #define lowbit(x) ((x)&(-x)) inline void solve() { ll n; scanf("%lld", &n); bool flag = 0; for (ll i = 2; i * i * i <= n; i++) { if (n % i == 0) { int cnt = 0; while (n % i == 0) n /= i, ++cnt; if (cnt > 1) flag = 1; } } if (n > 1) { ll tmp = sqrt(n); if (tmp * tmp == n) flag = 1; } if (flag) printf("YES\n"); else printf("NO\n"); } int main() { int t; scanf("%d", &t); while (t--) solve(); return 0; }