#include "bits/stdc++.h" #include "iomanip" using namespace std; #define fastIO() ios::sync_with_stdio(false),cin.tie(nullptr),cout.tie(nullptr) #define pb push_back #define judge(x) if (x) cout << "Yes" << endl; else cout << "No" << endl #define printlist(l, n) cout << "[ "; for(int (i)=0; (i)<(n); ++(i)) {cout << (l)[i] << " "; } cout << "]" << endl; #define loop(t) while (t--) #define rep(a, b) for (int i = a; i < b; ++i) #define rrep(a, b) for (int i = a; i >= b; --i) #define mem(a, b) memset(a,b,sizeof(a)) #define all(a) a.begin(), a.end() #define rall(a) rbegin(a), rend(a) #define put(a) for (auto &_x: a) cin >> _x #define space() cout << endl typedef long long ll; typedef unsigned long long ull; typedef pair pii; const int N = 2e5 + 5; const double eps = 1e-6; constexpr int mod = 1e9 + 7; constexpr int MOD = 998244353; constexpr int i32 = 0x3f3f3f3f; using vi = std::vector; using vvi = std::vector; int main() { fastIO(); unordered_set set; set.insert(1); set.insert(4); set.insert(9); set.insert(5); set.insert(0); string s; cin >> s; if (!set.count(s[s.size() - 1] - '0')) cout << "NO"; else { bool f = 0; for (ll i = 1000, j = 6, k = 5; i <= INT_MAX; ++i, j = 6, k = 5) { ll num = i * i; while (j--) { int z = num % 10; if (z != s[k])break; --k; } if (k == -1){ f=1; break; } } if (f)cout << "YES"; else cout << "NO"; } }