#include #include using namespace std; #include using namespace atcoder; using ll = long long; #define reps(i, a, n) for (ll i = (a); i < (ll)(n); ++i) #define rep(i, n) reps(i, 0, n) #define all(a) (a).begin(), (a).end() #define is_integer(x) floor(x) == x // なんかstd::vectorの挙動を修正できるやつ /* alias */ using ull = unsigned long long; using ll = long long; using vi = vector; using vl = vector; using vll = vector; using vvi = vector; using vvl = vector; using vvll = vector; using vs = vector; using pii = pair; //clang-format off #define debug(x) \ cerr << "\033[33m(line:" << __LINE__ << ") " << #x << ": " << x << "\033[m" \ << endl; //clang-format on bool pf(ll n) { vll res; for (ll i = 1; i * i <= n; i++) { if (n % i == 0) { debug(i*i); debug((n/i)*(n/i)); double x = sqrt(n-i*i); if (is_integer(x)) { return true; } } } return false; } int main() { ll p; cin >> p; if(pf(p)) cout << "Yes\n"; else cout << "No\n"; }