#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++) { debug(i * i); ll j = n - i; double x = sqrt(n - i * i); double y = sqrt(n - j * j); if (is_integer(x) || is_integer(y)) { return true; } } return false; } int main() { ll p; cin >> p; if (pf(p)) cout << "Yes\n"; else cout << "No\n"; }