/* -*- coding: utf-8 -*- * * 680.cc: No.680 作れる数 - yukicoder */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; /* constant */ const int MAX_T = 500000010; /* typedef */ /* global variables */ /* subroutines */ inline int calc_s(int t) { int s = 0; while (t) { s += t; t >>= 1; } return s; } /* main */ int main() { int n; scanf("%d", &n); int t0 = 0, t1 = MAX_T; while (t0 + 1 < t1) { int t = (t0 + t1) / 2; if (calc_s(t) > n) t1 = t; else t0 = t; } if (calc_s(t0) == n) puts("YES"); else puts("NO"); return 0; }